Wan*_*eho 3 jquery jquery-events
我需要找到一种全局方法来阻止jQuery on('click')事件触发,如果一个锚具有disabled ="disabled"(是的,我知道这不是一个锚的有效属性)属性集.锚也可以随时动态设置为禁用.
另一个问题是当我在"框架"中工作时触发命令,并且App类加载第一个和后续类,其后加载锚事件.理想情况下,id喜欢在App类中有一些东西阻止"子"类事件被触发,但是当前子类事件首先触发,然后使用stopPropagation()的App事件也不起作用.
我对一些解决方案很谨慎,比如如何订购与jQuery绑定的事件,因为你可以看到这可能会在jQuery版本之间中断.
如果未停止单击事件传播,则委派事件将起作用:
$(document).on('click', 'a[disabled]', function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
否则,您可以使用CSS规则:
a[disabled] {
pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)
如果您希望事件在其任何后代之前在父级别上触发,请捕获它,例如:
document.addEventListener('click', function(e){
if($(e.target).closest('a[disabled]').length) {
// do something which be fired before any click handler bound to `.parentClass *`
// e.g prevent any other event
e.stopImmediatePropagation();
// and prevent default anchor click behaviour
e.preventDefault();
}
}, true);
Run Code Online (Sandbox Code Playgroud)