2011-12-02 64 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 
}; 

});