【问题标题】:select all but a div with its children with .on()使用 .on() 选择除 div 及其子项之外的所有内容
【发布时间】:2016-03-15 17:26:00
【问题描述】:

是的,我知道这是以前问过的,但我找不到我的特殊问题的答案。

这真的很接近:jquery select all elements except a div and its children

但我想在 .on() 语句中选择除 div 及其子项之外的所有内容,就像这样(简化)

$('body').on('click', ':not(._project_overlay), :not(._project_overlay *)', globalClickHandler);

我不明白为什么这不起作用:-/ (我也尝试了上述所有变体)

这样的事情确实会选择除 div 及其所有子项之外的所有内容:

$('body').find(':not(._project_overlay *)')

那么到底为什么要将 .on() 绑定到 div 的子元素上呢?

请帮帮我:(

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    您正在使用multiple selector,它相当于逻辑上的OR

    :not(._project_overlay) OR :not(._project_overlay *)
    

    因此,它最终匹配 ._project_overlay 及其后代。

    你想要一个AND,所以你应该简单地写:

    :not(._project_overlay):not(._project_overlay *)
    

    【讨论】:

      【解决方案2】:

      改用:not(._project_overlay, ._project_overlay *),如下所示。

      $('body').on('click', ':not(._project_overlay, ._project_overlay *)', globalClickHandler);
      

      【讨论】:

        猜你喜欢
        • 2012-08-05
        • 2012-05-20
        • 2016-01-11
        • 2016-02-25
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 2011-05-15
        相关资源
        最近更新 更多