2011-12-02 62 views
0

我想选择整个身体但排除一个单一的元素,我怎么能做到这一点?jQuery选择器排除子女

$("body").not('#to-exclude').mouseup(function(){ 
    // ... 
}); 

不起作用。

回答

1

如果你使用的是jQuery < 1.7你应该使用delegate();

$('body').delegate(':not(#to-exclude)', 'mouseup', function() { 
    // ... 
}); 

对于jQuery 1.7及更高版本,请考虑使用on()方法;

$('body').on('mouseup', ':not(#to-exclude)', function() { 
    // ... 
}); 

你的代码是不工作的原因是因为你$('body')构建jQuery对象仅包括主体元素。因此not()无法删除元素,因为它不在那里。

0

这是另一种方式。

$("body").mouseup(function(event){ 
if(event.target.id == "to-exclude"){ 
return false; 
}else{ 

//do your works here 
}; 

});