在我的代码中,当用户第一次将鼠标悬停在 div 上时执行一个函数,并且该函数需要大约 30 秒才能完成,在这 30 秒内,如果用户再次将鼠标悬停在同一个 div 上,该函数会再次执行,所以我想禁用鼠标悬停事件第二次。是否有任何 javascript 或 jquery 代码可以禁用该 div 的偶数?谢谢,任何帮助将不胜感激。
问问题
17826 次
3 回答
10
使用带有某种回调的 jQuery 的 on() 和 off(),例如:
$("#myElementID").on('mouseover', myFunction);
myFunction(e) {
var myElement = e.target;
myElement.off('mouseover', myFunction);
//do something that takes 30 seconds
myElement.animate({top: 1000}, 30000, function() { //callback
myElement.on('mouseover', myFunction);
});
}
于 2012-07-02T14:10:16.853 回答
3
var isExecuting = false;
function yourThirtySecFunction() {
if (isExecuting == true) return;
isExecuting = true;
//do your stuff here
isExecuting = false;
}
于 2012-07-02T14:02:03.263 回答
3
你可以看看 jquery 的一个有趣的特性.......one()
这里是它的链接
描述:将处理程序附加到元素的事件。每个元素最多执行一次处理程序。
第二个想法
我可以再给你一个想法,假设当鼠标悬停发生一次时,只需在开始操作之前取消绑定鼠标悬停事件,然后一旦操作结束,再次将它们绑定回来......
于 2012-07-02T14:02:36.213 回答