仅支持一系列javascript/jQuery事件中最新事件的最简单方法
我不得不想象这是javascript/jQuery的一个常见用例,所以请原谅,如果它在网站上的其他地方,我搜索了它,但找不到这个基本用例 我有一个可见的div(a)。将该div悬停显示其他一些div(B&C)。取消覆盖任何一个分区(A、B或C)将隐藏显示的两个分区(B和C) 很简单,对吧?问题是,当你快速连续多次悬停和取消悬停时,这种简单的行为会导致丑陋,因为所有的事件都会叠加,然后它会像手风琴一样动作一段时间 我尝试将typewatch函数引入等式:仅支持一系列javascript/jQuery事件中最新事件的最简单方法,javascript,jquery,last-modified,typewatch,Javascript,Jquery,Last Modified,Typewatch,我不得不想象这是javascript/jQuery的一个常见用例,所以请原谅,如果它在网站上的其他地方,我搜索了它,但找不到这个基本用例 我有一个可见的div(a)。将该div悬停显示其他一些div(B&C)。取消覆盖任何一个分区(A、B或C)将隐藏显示的两个分区(B和C) 很简单,对吧?问题是,当你快速连续多次悬停和取消悬停时,这种简单的行为会导致丑陋,因为所有的事件都会叠加,然后它会像手风琴一样动作一段时间 我尝试将typewatch函数引入等式: var typewatch = (func
var typewatch = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
}
})();
但是我想我不能正确地使用它(也许我必须调用一个自定义的切换函数来调用typewatch本身,或者其他什么?)
为了便于理解,下面是一个具体案例的示例:
但总的来说,如何捕获多个事件并只关注最新的事件?我使用e.preventDefault()和jQuery事件来阻止事件向树上传播 事实上,这件事曾经让我很烦恼。在设置动画之前,调用它将冻结其轨迹中的任何当前动画,并选择您为其设定的新目标
$("#container")
.mouseenter(
function(){
$(".panels", this).stop(true, true).slideDown();
})
.mouseleave(
function(){
$(".panels", this).stop(true, true).slideUp();
}
);
这遵循jQueryAPI中为方法本身提供的文档,因为它们提供了一个使用单个图像的类似示例
演示:您没有使用jQuery的本机动画功能(更具体地说),因为……这东西的编码不正确……您在离开A…去B时手风琴(?)!哎哟,是的,我意识到从a移动到b会引起问题,我应该在页脚容器上作为一个整体触发。@brad至于使用animate和stop作为替代方法,我想我可以尝试一下,当然,以前很少使用animate。@josh.trow我们开始了,更新为仅通过hover()触发而不是页脚元素本身。当你在页脚元素上挥动鼠标时,它并不完美,但对于我当前的用例来说,它已经足够好了。@Tchalvak它肯定不是完美的,但它几乎就在那里;)是 啊在这里,我认为我手头有一个简单的用例…:P