2013-03-22 42 views
-1

我创建这个函数显示分度函数调用,但我NEDD执行此功能和展后停在一秒钟:与repit_clouds功能jQuery的停止功能不正常工作

<script> 

function repit_clouds(request) 
{ 
    if (request=='no') 
    { 
    stop(); 
    } 
    else 
    { 
    if (request=='ok') 
    { 
     var interval = setInterval(function() { 
     $("#header_sun").fadeIn(4000); 
     $("#header_sun").fadeOut(4000); 
     },10000); 
    } 
    } 
} 

$(document).ready(function() 
{ 

    $("#header_sun").fadeIn(4000).delay(4000).fadeOut(4000); 
    repit_clouds('ok'); 
    $("#header_background_clouds").fadeOut(2000).css("display","#none"); 
    $("#header_background_night").fadeIn(2000).css("background","#000").show(4000).fadeIn(2500); 
    repit_clouds('no'); 
}); 
</script> 

问题it's,当我送价值没有功能必须停止,但没有工作正常,并继续仿佛request==ok,我不知道为什么没有停止

+0

你读过['.stop()'](http://api.jquery.com/stop/)的工作方式吗?阅读文档! – epascarello 2013-03-22 14:00:39

+0

@ mt.VVoo不错的格式化 - 耻辱的OP的代码可能根本没有格式化;-) – Alnitak 2013-03-22 14:01:19

+0

1负面?为什么? – user2174831 2013-03-22 14:57:25

回答

2

嗯,你有什么感想究竟stop()呢?您是否意思是:

$('#header_sun').stop() 

哪个会暂停该元素上的任何现有动画?

还是你或许也想停止间隔定时器:

clearInterval(interval); 

,当然这也需要interval声明之外的功能所以它的值在每次调用时不会丢失功能。

我也注意到你的.css()功能将不会受到.fadeOut().show()呼叫排队 - .css()不是一个动画功能,因此这些修改会立即发生。

同样的两次调用repit_clouds()不会被排队或者 - 如果你希望那些后进行以前的动画,那么你就需要调查jQuery的.queue()功能,或在“动画完成回调”触发它们。

+0

只有我想停止功能不再 – user2174831 2013-03-22 14:57:00