2010-11-11 82 views
0

怪怪看一看这个HTML代码:悬停在IE

<div class="overlay"> 
    <a href="#">1</a> 
    <a href="#">1</a> 
    <a href="#">1</a> 
    <a href="#">1</a> 
    <a href="#">1</a> 
</div> 

这jQuery代码:

$('div.overlay').mouseenter(function() { clearTimeout(thumbsAway); }); 
$('div.overlay').mouseleave(function() { clearTimeout(thumbsAway); $('ul.thumbs').animate({top: '520px'}, 750); }); 

的问题是,在IE中徘徊任何子元素也将触发的mouseenter /鼠标离开。我怎样才能防止这一点?

回答

1

您可以使用event.stopPropagation()

$('div.overlay').hover(function(event){ 
    event.stopPropagation(); 
    clearTimeout(thumbsAway); 
    }, 
    function(event){ 
    event.stopPropagation(); 
    clearTimeout(thumbsAway); 
    } 
); 

或检查事件的目标。

$('div.overlay').hover(function(event){ 
    if (this == event.target){clearTimeout(thumbsAway);} 
    }, 
    function(event){ 
    if (this == event.target){clearTimeout(thumbsAway);} 
    } 
); 
0

尝试停止事件传播史与stopPropogation()

$('div.overlay').mouseenter(function(e) { 
    e.stopPropogation(); 
    clearTimeout(thumbsAway); 
}); 

说明:防止 事件冒泡DOM树,防止 任何父处理程序被 通知的事件。