禁用特定元素的javascript

Bho*_*yar 6 javascript jquery

是否可以仅为特定元素禁用javascript?

假设,div与id foo有一些javascript代码可能是内联,内部或外部JavaScript代码.

现在,取消绑定该元素的所有javascript代码(也可能包括子代).

小智 0

CSSpointer-events属性

关闭 CSS 指针事件属性。

#foo { pointer-events: none; }
Run Code Online (Sandbox Code Playgroud)

请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

当然,这不会关闭某些类型的事件处理程序,例如onchange输入元素上的处理程序。另一方面,它的优点是,pointer-events如果需要,您可以为特定的后代元素重新打开。

IE < 11 不支持。

添加新的事件处理程序

或者,您也可以尝试以下操作:

elt.addEventListener('click', function(evt) {
    evt.stopPropagation();
    evt.preventDefault();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

这不会阻止任何已直接附加到元素的事件处理程序运行,但会阻止事件冒泡,这将处理委托类型的情况。它将禁止添加到元素的任何未来事件处理程序运行。它还会抑制事件的默认行为(例如单击链接)。

您必须为每种事件类型单独执行此操作。无法定义适用于多个或所有事件的事件处理程序(无论如何您可能都不想这样做)。