我有以下脚本发射鼠标悬停和鼠标总是两次! 你有什么建议我做错了(取消绑定,返回例如)?我尝试了几件事,但 没有任何帮助。jQuery的委托()事件(鼠标悬停鼠标)两次火灾
这里是代码:
$('#container').delegate('div.showmenu', 'mouseover mouseenter mouseout mouseleave', function(e){
if (e.type === 'mouseover' || e.type==='mouseenter') { //jIE requires mouseenter, does not fire mouseover
if($(this).parents().closest('div').hasClass('whatever')){
alert(e.type); //double-alerts mouseover
menu.show();
foldercmenu.hover(
function(){
$(this).show();
},
function(){
$(this).hide();
}
);
}else {
//do other stuff :-)
}
}else if(e.type==='mouseout' || e.type==='mouseleave'){ //IE requires mouseleave, does not fire mouseout
alert(e.type); //double-alerts mouseout
menu.hide();
$(this).unbind('mouseover mouseenter mouseout mouseleave');
}
//return false;
});
这是一个记录不完善的事件问题...感谢提到它。花了我很长时间才发现这一点。在我的情况下,你建议的行为(mouseover&mouseout在你进入/离开子节点时再次发射)只在IE <10时出现 - 所有现代浏览器似乎都明白我只对处理所提供元素的事件感兴趣,而不是所有的孩子。即使停止传播/ stopImmediatePropagation也没有影响到我。 – 1nfiniti