Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery单击事件预防_Jquery_Jquery Ui_Javascript Events - Fatal编程技术网

Jquery单击事件预防

Jquery单击事件预防,jquery,jquery-ui,javascript-events,Jquery,Jquery Ui,Javascript Events,我有一个与tr和td的click事件绑定的表。我还有一个文档点击事件。我在我的页面中设置了一个过滤器,所以如果选择了一个特定的过滤器,我需要阻止tr和td的点击,并且只触发文档点击事件。我对元素单击没有任何控制权。我在文档单击中只有控制权(换句话说,我不能在元素单击中更改实现代码,但我可以绑定或处理) 有什么方法可以防止元素在文档范围内的单击事件吗 如果您知道过滤器,只需在单击事件中检查它。如果在单击事件中返回false,它将不会做任何事情。那么,试试这个: $('element').on('c

我有一个与tr和td的click事件绑定的表。我还有一个文档点击事件。我在我的页面中设置了一个过滤器,所以如果选择了一个特定的过滤器,我需要阻止tr和td的点击,并且只触发文档点击事件。我对元素单击没有任何控制权。我在文档单击中只有控制权(换句话说,我不能在元素单击中更改实现代码,但我可以绑定或处理)


有什么方法可以防止元素在文档范围内的单击事件吗

如果您知道过滤器,只需在单击事件中检查它。如果在单击事件中返回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
);