我设置.delay()以停止在每个鼠标上显示效果,但现在它显示在每个鼠标上只是延迟。
似乎.delay()不是识别鼠标的正确方法,在该部分之后显示的时间最短。
$(document).ready(function(){
$('.article_wrapper').hover(
function(){
$(this).find('.actions').delay(800).show(300);
},
function(){
$(this).find('.actions').hide(200);
});
});
我可以使用哪些其他功能?
答案 0 :(得分:5)
在jQuery 1.9+上,您可以使用finish()清除应用于特定队列的所有先前延迟:
(虽然这仍未记录)
更新: 确实,为了不破坏隐藏动画,您应该使用clearQueue()
$(document).ready(function(){
$('.article_wrapper').hover(
function(){
$(this).find('.actions').delay(800).show(300);
},
function(){
$(this).find('.actions').clearQueue().hide(200);
});
});
答案 1 :(得分:0)
不幸的是,这是一个有点烦人的问题。解决这个问题的正确方法是使用" setTimeout",这里有更详细的解释。 Trying to add delay to jQuery AJAX request
可以根据您的需要轻松修改。
修改强>
正如更好的答案所指出的,这对于动画来说并不是必需的,我会把它留在这里,因为它与大多数非动画延迟有关。