2010-07-20 2 views
1

Я получил этот код jquery. И это какой-то слайд-шоу с эффектом затухания. Так что петли ... это первый кодJQuery Проблема для остановки цикла

$(document).ready(function(){ 
    function looptour(){ 
     $("#health").hide(); 
     $("#billing").hide(); 
     $("#pension").delay(6000).fadeOut(2000); 
     $("#health").delay(6000).fadeIn(2000).delay(6000).fadeOut(2000); 
     $("#billing").delay(14000).fadeIn(2000).delay(6000).fadeOut(2000); 
     $("#pension").delay(14000).fadeIn(2000,looptour); 
    } 
    looptour(); 
}); 

Моя проблема заключается в том, чтобы остановить цикл, который вы видели на первом кодовом OnClick событие? Затем после нажатия этого события новый цикл будет продолжаться и так далее ...

Вот новый код,

$("#tournums").click(function(){ 
    function billingloop(){ 
     $("#health").hide(); 
     $("#pension").hide(); 
     $("#billing").delay(6000).fadeOut(2000); 
     $("#pension").delay(6000).fadeIn(2000).delay(6000).fadeOut(2000); 
     $("#health").delay(14000).fadeIn(2000).delay(6000).fadeOut(2000); 
     $("#billing").delay(14000).fadeIn(2000,looptour); 
    } 
    billingloop(); 
}); 

Спасибо так много мастеров Jquery за помощь мне с этой проблемой шахты.

ответ

1

Моя догадка использовать .clearQueue() для этого:

function stopLoop() { 
    $("#pension").clearQueue(); 
    $("#health").clearQueue(); 
    $("#billing").clearQueue(); 
} 

// snip // 

$("#tournums").click(function(){ 
    stopLoop(); 

    function billingloop(){ 
     $("#health").hide(); 
     $("#pension").hide(); 
     $("#billing").delay(6000).fadeOut(2000); 
     $("#pension").delay(6000).fadeIn(2000).delay(6000).fadeOut(2000); 
     $("#health").delay(14000).fadeIn(2000).delay(6000).fadeOut(2000); 
     $("#billing").delay(14000).fadeIn(2000,looptour); 
    } 
    billingloop(); 
}); 
+0

Почему функция клик не работает над проектом? – Ryan

+0

Не знаю. Придерживайте 'alert (« whatever »)' trace, чтобы увидеть, действительно ли ваша функция вызывает вызов. –

Смежные вопросы