2011-10-19 104 views
0

我對我的jQuery代碼有一個小問題。 我已經基本上得到了通過一組圖片,這是對的setIntervaljQuery setInterval&setTimeout

當我點擊左邊或右邊控制器循環計時器,它停止的時間間隔和消失基於用戶點擊而不是自動圖像。

$('a.right').click(function() { 

    clearInterval(myInterval); 
    setTimeout(function() { slideshow(); }, 9000); 

    if (count < max - 1) { 
     $('div.feature-image').eq(count).fadeOut('1000', function() { 

      count++; 
      $('div.feature-image').eq(count).fadeIn('1000'); 
      info++; 
      $('div.img-info').html(info + ' of ' + max + ' | '); 


     }) 

    } 

我已經使用setTimeout等待4秒,然後繼續循環。 雖然我不認爲這是最優雅的方式,因爲Jquery不知道要停止if語句。有什麼辦法可以在setTimeout上停止if語句來執行它的功能嗎?

+0

setInterval代碼是什麼樣的?你是什​​麼意思_Jquery不知道停止如果聲明_ – mplungjan

+0

請閱讀此:http://www.w3schools.com/jquery/jquery_effects.asp – linguini

回答

0

不知道我完全瞭解這個問題,但對於這樣的事情

setTimeout(function() { 
    setTimeoutTriggered = true; 
    slideshow(); 
}, 9000); 

if ((count < max - 1) && !setTimeoutTriggered) { 
    ... 
} 

當然,你可以給setTimeoutTriggered更語義的名字。 而且會更好地避免全局變量:)

無論如何,我覺得這個jQuery插件非常適合管理超時和間隔! http://plugins.jquery.com/project/timers