gpt4 book ai didi

javascript - jquery delegate() 事件(mouseover mouseout)触发两次

转载 作者:数据小太阳 更新时间:2023-10-29 05:53:14 24 4
gpt4 key购买 nike

我有以下脚本总是两次触发鼠标悬停和鼠标移出!你建议我做错了什么(解除绑定(bind),返回例如)?我尝试了一些东西但是没有任何帮助。

代码如下:

  $('#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;
});

最佳答案

mouseovermouseout 当您进入/离开元素的子元素时触发,也许这就是您看到的效果。

另一个问题是您将处理程序绑定(bind)到 mouseover mouseenter ( 和 mouseleavemouseout)。

仅绑定(bind)到 mouseentermouseleave。 jQuery 已经在处理浏览器差异。

关于javascript - jquery delegate() 事件(mouseover mouseout)触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com