0

除非用户单击 ID = 'menubutton' 的元素,否则如何隐藏菜单?

$('body').click(function(event) {
    $('#menu').hide();
    });
4

4 回答 4

2

使用 not() 选择器

$('body :not(#menubutton)').click(function(event) {
    $('#menu').hide();
});

http://api.jquery.com/not-selector/

于 2012-05-16T18:29:38.183 回答
1

使用target元素。

$('body').click(function(event) {
    // If the element clicked doesn't have the id "menubutton"
    if ( $(event.target).attr( 'id' ) !== 'menubutton' ) {
        $('#menu').hide();
    }
});
于 2012-05-16T18:27:09.347 回答
1
$('body').click(function(event) {
    // don't hide if the clicked element was #menubutton,
    // or any element within #menubotton
    if (!$(event.target).closest('#menubutton').length) {
        $('#menu').hide();
    }
});
于 2012-05-16T18:27:09.773 回答
1
$('body :not(div #menubutton)').click(function(event) {
   $('#menu').hide();
});

jQuery 不()

not() 的选择器可能需要针对您的情况进行一些更改

于 2012-05-16T18:28:40.990 回答