【问题标题】:How can I pause the jquery mouseenter "counter" while the animation is running?如何在动画运行时暂停 jquery mouseenter“计数器”?
【发布时间】:2011-04-30 14:24:07
【问题描述】:

我的 jquery mouseenter 和 mouseleave 有问题。我有一个链接按钮,当您将鼠标悬停在它上面以显示链接图片时,它会向左滑动。对于更流畅的动画,它至少要等待一秒钟才能滑回。但是由于延迟,当你在它上面移动不止一次时它会发射。
我已经搜索了几天关于这个主题,但没有解决方案。现在我想用一个条件来解决这个问题。到目前为止,这是我的代码。

    if( $(".block_dev").is ('animated') ) {} else {  

    $(".border_dev").mouseenter(function() {  
        $(".block_dev").animate({"left": "-=41px"}, "slow")  
                       .wait(); })  
                    .mouseleave(function() {  
        $(".block_dev").animate({"left": "+=41px"}, "slow")  
                       .wait(); }) }  

.wait() 是超时脚本。在 if 条件下,我希望它什么都不做(没有新的 mouseenter 计数),只有在它完成后它才应该重新启动,但它不起作用。
感谢您的帮助!

【问题讨论】:

  • 感谢您的提示,这里是:jsfiddle.net/eUkE4 它的工作原理类似于我的网站版本。编辑:sry 更新了仍然无法工作的 if 条件。 jsfiddle.net/eUkE4/2
  • 我在其中看不到 if 声明。

标签: jquery if-statement mouseleave mouseenter


【解决方案1】:

我怀疑你的意思是.is(':animated'),因为animated 本身并不是一个有效的选择器。 (理论上这会像p 选择像<p ...> 这样的标签一样选择像<animated ...> 这样的标签,当然这根本不是你的想法。)

【讨论】:

  • 包装原始事件绑定即使这样也没什么用。
  • 谢谢!我更新了!但它仍然没有做“什么”,只是忽略了条件..
【解决方案2】:

尝试将您的条件放入事件处理程序(而不是围绕您创建它们),并使用':animated'(而不是'animated')。

【讨论】:

  • 谢谢!我现在正在尝试。当我找到一个可行的解决方案时,我会更新它!
  • 它的工作!多谢!工作脚本:jsfiddle.net/eUkE4/3 ..但没有超时,因为当你在它上面开火时它不会被识别为动画。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多