jQuery + Not Selector

r0s*_*kar 0 jquery jquery-selectors

作为Javascript和jQuery的新手,我不确定这根本不可能,或者我只是做了一个完全愚蠢的错误:

我试图隐藏divdiv自身之外的任何点击.

我已经简化了用于演示目的的代码:

HTML

<html>
    <div class="tooltip">
        Bla Bla Bla
    </div>
</html>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('html:not(.tooltip)').click(function() {

    $('.tooltip').hide();

});
Run Code Online (Sandbox Code Playgroud)

演示

http://jsfiddle.net/yCx6F/1/

Ble*_*der 5

添加空间:

$('html :not(.tooltip)')
Run Code Online (Sandbox Code Playgroud)

当您说html:not(...),您正在寻找html与您的选择器不匹配的所有元素.

添加空格会查找html元素的子元素,这正是您想要的.

看看这是否符合您的要求:http://jsfiddle.net/yCx6F/2/


实际上,你应该这样做:

$('.tooltip').click(function(e) {
  e.stopPropagation();
});

// Once the `<div>` is created, in the same function:

$(document).one(function() {
  $('.tooltip').hide();
});
Run Code Online (Sandbox Code Playgroud)