1

因此,如果我将鼠标悬停在 div 上,我想停止触发多个事件。这是我的代码。

$( "#menu" ).hover(
  function() {
    $("#menu").fadeTo("slow",0.8);
  },
  function() {      
    $("#menu").fadeTo("slow",0);
   }
);

我尝试过stop()stopPropagation()没有成功,也许我没有正确使用它们。

我只想执行第一个,并丢弃用户在fadeTo()动画期间可能触发的所有事件。在动画 div 应该再次“悬停”之后。

4

2 回答 2

2

使用.stop()带参数的 jQuery 函数true, false

$( "#menu" ).hover(
  function() {
     $("#menu").stop(true, false).fadeTo("slow",0.8);
  },
  function() {        
     $("#menu").stop(true, false).fadeTo("slow",0);
  }
);

.stop( [clearQueue ] [, jumpToEnd ] )

停止匹配元素上当前正在运行的动画。[阅读更多]

所以,它会清除Queqe,但不会跳到最后。

JSFIDDLE

于 2013-07-25T06:47:57.013 回答
0

你试过stop()true, true

$("#menu").stop(true, true).fadeTo("slow",0.8);
于 2013-07-25T06:35:09.473 回答