我想知道是否可以使用jquery选择器在元素上绑定事件,但不在其子元素上绑定。实际上,我有两个重叠的div,采用绝对定位,我希望检测到这两个div上相同的事件,但不会在顶部div的子元素上发生(我的意思是,我希望检测到事件是否发生在顶部div的透明部分,就像它发生在较低的div上一样)。
例如,在这里,#desktop和#apps互相叠加,具有相同的固定宽度和高度,我希望检测到:#desktop或#apps上的事件,但不在.stuff上。 HTML
如果选择器无法实现此功能,我考虑使用以下方法,这个方法可以令人满意地工作:
例如,在这里,#desktop和#apps互相叠加,具有相同的固定宽度和高度,我希望检测到:#desktop或#apps上的事件,但不在.stuff上。 HTML
<div id="desktop">
</div>
<div id="apps">
<div class="stuff">
test
</div>
<div class="stuff">
test2
</div>
</div>
JavaScript
$("#desktop, #global:not(its_CHildren?)").mousemove(function (mouse){
// ...
}
如果选择器无法实现此功能,我考虑使用以下方法,这个方法可以令人满意地工作:
如果用选择器无法实现这个功能,我考虑采用以下方法,这个方法可以令人满意地工作:
$("#desktop, #apps").mousemove(function(mouse){
$("#global stuff").mousemove(function() {
return false;
});
// ...
});
$("#global stuff").mousemove(function() {
放在另一个mousemove
处理程序中。将它们放在外面,因为你只需要分配一次。按照你的方式做会不断地在鼠标移动时分配处理程序。 - user113716