为了使用户保持理智,我希望在选择器悬停半秒后而不是在它们悬停后立即运行“mouseover”事件。
我首先尝试了setTimeout函数,但是它运行的时间不管元素被悬停了多长时间,我都认为并没有考虑太多。我也花了一天的时间(不停地)搜索(并玩“吃 bean ”游戏),但没有结果,除非我搜索错误的东西。
如果可以的话,我想尽量减少此插件的使用,纯粹是为了提高运行速度和可维护性。
$("#mySelector").mouseover(function(){
// Run after 500ms
$(this).addClass("hasBeen500ms");
});
让我们看看是否可以破解它,我知道它将有很多应用程序!
最佳答案
防止在延迟到期之前显示鼠标是否已经退出,以及在鼠标退出时移除类:
$("#mySelector").mouseenter(function() {
var el = $(this);
var timeoutId = setTimeout(function() {
el.addClass("hasBeen500ms");
}, 500);
el.mouseleave(function() {
clearTimeout(timeoutId);
el.removeClass("hasBeen500ms");
});
});
关于jquery - 如果元素已被 'mouseover'编辑500ms,则使用jQuery运行函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2892187/