Jquery单击事件预防
我有一个与tr和td的click事件绑定的表。我还有一个文档点击事件。我在我的页面中设置了一个过滤器,所以如果选择了一个特定的过滤器,我需要阻止tr和td的点击,并且只触发文档点击事件。我对元素单击没有任何控制权。我在文档单击中只有控制权(换句话说,我不能在元素单击中更改实现代码,但我可以绑定或处理)Jquery单击事件预防,jquery,jquery-ui,javascript-events,Jquery,Jquery Ui,Javascript Events,我有一个与tr和td的click事件绑定的表。我还有一个文档点击事件。我在我的页面中设置了一个过滤器,所以如果选择了一个特定的过滤器,我需要阻止tr和td的点击,并且只触发文档点击事件。我对元素单击没有任何控制权。我在文档单击中只有控制权(换句话说,我不能在元素单击中更改实现代码,但我可以绑定或处理) 有什么方法可以防止元素在文档范围内的单击事件吗 如果您知道过滤器,只需在单击事件中检查它。如果在单击事件中返回false,它将不会做任何事情。那么,试试这个: $('element').on('c
有什么方法可以防止元素在文档范围内的单击事件吗 如果您知道过滤器,只需在单击事件中检查它。如果在单击事件中返回false,它将不会做任何事情。那么,试试这个:
$('element').on('click', function () {
if (myfilter...) {
return false;
}
// do some action
});
您可以在捕获阶段而不是冒泡阶段处理事件。我看不出jQuery是如何做到这一点的,所以使用本机API:
document.getElementById('[some outer element id]').addEventListener(
'click',
function(e) {e.stopPropagation();},
true
);
第三个参数=true使其在捕获阶段触发。这是在元素单击中处理。元素单击不在我的控制范围内。
document.getElementById('[some outer element id]').addEventListener(
'click',
function(e) {e.stopPropagation();},
true
);