Angularjs 元素上具有相同事件绑定的多个指令
我有两个来自两个独立模块的同名指令。 一个是第三方模块,我无法对其进行更改。它将鼠标滚轮事件绑定到元素 我写了我自己的指令,试图撤销这个绑定Angularjs 元素上具有相同事件绑定的多个指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有两个来自两个独立模块的同名指令。 一个是第三方模块,我无法对其进行更改。它将鼠标滚轮事件绑定到元素 我写了我自己的指令,试图撤销这个绑定 angular.module('myModule').directive('ngViewport', [function () { return { restrict: 'A', priority: -1, link: function ($scope, element, attrs) {
angular.module('myModule').directive('ngViewport', [function () {
return {
restrict: 'A',
priority: -1,
link: function ($scope, element, attrs) {
element.bind("mousewheel DOMMouseScroll", function (event) {
event.stopPropagation();
return true;
});
}
};
}]);
这是行不通的。我还尝试在元素上使用“unbind”选项,但它也不起作用 查看
事件。stopImmediatePropagation()
:
除了保留元素上的任何附加处理程序之外
在执行时,此方法还通过隐式
调用event.stopPropagation()
。只是为了防止事件发生
冒泡到祖先元素,但允许其他事件处理程序
在同一个元素上执行,我们可以使用event.stopPropagation()
相反
所以
您的
bind
回调是否执行?在第三方bind方法之前或之后?在第三方bindTry事件之前。而不是stopImmediatePropagation()!谢谢你。我会加上它作为答案。。。
...
element.bind("mousewheel DOMMouseScroll", function (event) {
event.stopImmediatePropagation();
return true;
});
...