仅兑现一系列javascript / jQuery事件中的最新事件的最简单方法
作者:互联网
我必须想象这是javascript / jQuery的常见用例,因此请原谅我是否在网站的其他位置,我进行了搜索,但找不到此基本用例.
我有一个可见的div(A).将鼠标悬停在该div上会显示其他一些div(B& C).取消悬停任何这些div(A,B或C)将隐藏两个显示的div(B和C).
很简单吧?问题在于,当您快速连续地悬停和取消悬停多次时,简单的行为会导致丑陋,因为所有事件都叠加在一起,然后在一段时间内就像手风琴一样.
我尝试将typewatch函数引入方程式:
var typewatch = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
}
})();
但是我想我无法正确使用它(也许我必须调用一个单独的自定义切换函数,该函数调用typewatch本身或其他功能?).
为了便于理解,下面是确切情况的说明:
http://jsfiddle.net/tchalvakspam/KG3P9/7/
但是总的来说,我如何才能捕捉到多个事件而仅纪念最近的一个?
解决方法:
实际上,这曾经让我很困扰.在制作动画之前,请致电$.stop()
,它将冻结轨道中任何当前存在的动画,并为您指定新的目标.
$("#container")
.mouseenter(
function(){
$(".panels", this).stop(true, true).slideDown();
})
.mouseleave(
function(){
$(".panels", this).stop(true, true).slideUp();
}
);
这遵循了jQuery API中针对$.stop()
方法本身提供的文档,因为它们使用单个图像提供了类似的示例.
演示:http://jsbin.com/adeqef/2/edit
标签:last-modified,javascript,jquery,typewatch 来源: https://codeday.me/bug/20191208/2090001.html