Jquery Selector 使用 not

Posted

技术标签:

【中文标题】Jquery Selector 使用 not【英文标题】:Jquery Selector use of not 【发布时间】:2012-02-02 06:10:40 【问题描述】:

我在 div 中有一个类名为“.modalPopup”的 div 我有多个表格,在表格内部我有 div 和多个控件,如文本框(输入)和下拉列表(选择)。

我想要的是,当用户单击主 div 上除下拉列表(选择)之外具有“modalPopup”的任何位置时,我想触发单击事件。 我尝试使用我的选项,但我无法获得特定的点击事件。 像这样:

  $('.modalPopup :not(modalPopup select)').click(function()
    document.write("working for click except select ");
    );

谁能给我解决办法?

【问题讨论】:

【参考方案1】:

最简单的方法是将div上的点击事件与modalPopup类绑定,然后使用e.target检查用户实际点击的内容:

$('.modalPopup').click(function(e)
    if (!$(e.target).is('select')) 
        document.write("working for click except select ");
    
);

e.target 是被点击的 dom 元素。 $(e.target).is('select') 获取该 dom 元素并从中创建一个 jQuery 对象并检查它是否是一个选择。

JSFiddle Example

【讨论】:

你能解释一下“if (!$(e.target).is('select'))”吗?我非常感谢你...【参考方案2】:

您在 not() 条件中的 .modalPopup 之前缺少一个点。

$('.modalPopup :not(.modalPopup select)').click(function() document.write("working for click except select "); );

【讨论】:

我在这里打字时想念点。我找到了解决方案。感谢您的帮助。

以上是关于Jquery Selector 使用 not的主要内容,如果未能解决你的问题,请参考以下文章

04jQuery筛选jquery对象02

jQuery on()方法使用

JQuery中$.each 和$(selector).each()的区别详解

是否可以使用 jQuery Selector 获取下拉框数组

如何通过一个类名使用 jQuery Selector 获取多个值

JQuery中$.each 和$(selector).each()的区别详解