2015-08-22 111 views
-1

我试图阻止的功能我叫defaultState单击该文档时,但我用stop();stop(true, true);stopPropagation();多,但无法阻止发生的动画......很明显,我做错了什么?但是什么?停止功能,当文档点击

JSjsFiddle

function defaultState(){ 
    $('#me').hover(function(){ 
     $(this).animate({ 
      'background-color': '#339966' 
     },300); 
    },function(){ 
     $(this).animate({ 
      'background-color': 'red' 
     },300); 
    }); 
}; 

defaultState(); 

$(document).click(function(){ 
    defaultState.stop(true, true); 
}); 
+2

'defaultState'是一个自定义函数,它不能被停止。但是你想停止动画? (只需要300ms?) –

+1

你从哪里看到'defaultState.stop(true,true);'应该做些什么?你应该阅读一些初学者级别的教程:JavaScript,jQuery,jQuery动画。然后再试一次 – Amit

+0

@Amit你是对的......我已经赶上停止事件,我开始想以同样的方式停止功能:)) – Alin

回答

3

如果,你的意思,是要阻止发生任何未来的动画,并停止所有动画发生的条件,那么你就可以调用.stop()然后取出事件处理程序defaultState()安装有:

$("#me").stop(true).off(); 

或者,你可以用这个目标只有.hover()鼠标事件处理:

$("#me").stop(true).off('mouseenter mouseleave'); 
+0

谢谢,我把所有的事情从停止事件混合到停止功能..第二个是我的:) – Alin

+0

你说得对,我不想只停止300ms的动画,这是一个更复杂的过滤器,但我只是将它作为一个独立的例子,而不是发布2页代码......我非常习惯于停止事件,我开始希望以同样的方式停止函数:)) – Alin

3

你需要调用stop方法不是在你的函数,它没有这样的方法动画元素上。

$(document).click(function(){ 
    $('#me').stop(); 
}); 

这里试试吧:jsfiddle

+0

http://jsfiddle.net/qv1ow2q9/1/它不工作 –

+1

似乎不太可能,OP所要做的仅仅是停止300ms的动画。 – jfriend00

+0

补充工作示例 – Lunokhod