我有两个具有相同名称的指令来自两个独立的模块。 一个是第三方模块,我无法对其进行更改。它将mousewheel事件绑定到元素。
我编写了自己的指令,试图撤消此绑定。
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”选项,它也没有用。
答案 0 :(得分:1)
看看event.stopImmediatePropagation()
:
除了在元素上保留任何其他处理程序之外 执行时,此方法也会隐式停止冒泡 致电
event.stopPropagation()
。简单地阻止事件发生 冒泡到祖先元素但允许其他事件处理程序 在同一个元素上执行,我们可以使用event.stopPropagation()
代替。
因此...
...
element.bind("mousewheel DOMMouseScroll", function (event) {
event.stopImmediatePropagation();
return true;
});
...