【问题标题】:Jquery Selector use of notJquery Selector 使用 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 ");
    });

谁能给我解决办法?

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-selectors jquery-events


    【解决方案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 "); });
    

    【讨论】:

    • 我在这里打字时想念点。我找到了解决方案。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2017-06-09
    • 2016-02-21
    • 1970-01-01
    相关资源
    最近更新 更多