javascript - 我想要一个不使用 'click anywhere except this div' 或 'event.stopPropagation();' 的 '.length' 函数

标签 javascript jquery html

我有 3 个 html 列,它们都充满了子元素,我想在用户单击除该列之外的任何地方时触发一些 jquery。

$('html').click(function(e) {                    
   if(!$(e.target).hasClass('column1') )
   {
      console.log('triggered jquery');                
   }
}); 

<div class="column1"></div>
<div class="column2"></div>
<div class="column3"></div>

event.stopPropagation() 会破坏其他 jquery 事件,所以我不想使用它。

.hadClass 将检测 column1 是否被点击,但不包括 column1 的 child 。

最佳答案

请试试这个:

 $('html *:not(div.column1)').click(function(e) {                    
      console.log('triggered jquery');                
 }); 

$('html').click(function(e) {                    
   if(!$(e.target).hasClass('column1') || $(e.target).closest('.column1').length > 0 )
   {
      console.log('triggered jquery');                
   }
}); 

关于javascript - 我想要一个不使用 'click anywhere except this div' 或 'event.stopPropagation();' 的 '.length' 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24760822/

相关文章:

html - Bootstrap 网格环绕少于 12 列

javascript - 查询 : Style all select elements to italic only if the selected element is the first one (placeholder)

javascript - vue app中处理模态窗口的结果

javascript - 连接一个二维数组

javascript - 如何使用 jQuery 更改 CSS?

javascript - 让简单的 Javascript/jQuery 工作起来(Ariel Flesler 的 ScrollTo)

javascript - 为等效的其他 ID 添加类

jquery-plugins - 使用 JQuery 验证器 (Cakephp) 进行服务器端验证

javascript - 如何在没有 JSONP 的情况下通过 AJAX 调用访问来自不同服务器的数据?

javascript - 在初始页面加载时触发 javascript,而不是在按 'Back' 按钮时触发