gpt4 book ai didi

jquery body委托(delegate)mouseover和mouseout同时触发

转载 作者:行者123 更新时间:2023-12-01 01:04:35 26 4
gpt4 key购买 nike

我在主体上有一个委托(delegate),等待鼠标悬停和鼠标移出时的类缩略图元素

 $('body').delegate('.thumbnail', 'mouseover mouseout', function(e){
if(e.type=='mouseover' && !isMousingOver ){
enlarge_thumbnail(this);
isMousingOver = true;
console.log('enlarged')
}else if(e.type=='mouseout'){
reset_thumbnail(this);
isMousingOver = false;
console.log('resetting')
}
})

但是每当我将鼠标移到 div.thumbnail 元素的边界内时,我就会进入日志放大的重置放大的重置放大的重置放大的重置...

其中放大缩略图和重置缩略图是:

function enlarge_thumbnail(element_to_set, how_much) {
element_to_set = $(element_to_set); // jQueryize the element;
how_much = parseInt(how_much);// Make sure it's an intger;
if( element_to_set.length && !isNaN(how_much) ){
element_to_set.css({width:how_much});
}
}

function reset_thumbnail(element_to_reset) {
element_to_reset = $(element_to_reset); // jQueryize the element;
element_to_reset.css({width:'200px'});
}

如果我不移动鼠标,并且鼠标在 div.thumbnail 元素的边界内静止不动,那么它会执行我想要的操作:放大缩略图而不是重置它。

可能是什么问题?

最佳答案

这是因为按照设计,mouseovermouseout当您进入/离开 .thumbnail 的后代时触发处理程序也是如此。

为避免这种情况,请使用 mouseentermouseleave反而。这些事件不会冒泡,因此仅在进入/离开.thumbnail时才会触发。它们绑定(bind)到的元素。

关于jquery body委托(delegate)mouseover和mouseout同时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846670/

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