2013-11-22 109 views
3

我有一個div,當我點擊它時,它會添加一個「玩」類。然後,10秒後,我想添加一個'完成'的類。10秒後添加課程

我有這段代碼,但是如何在10秒之後計算它的時間呢,它會添加finsihed類?

$('.albums img').on('click',function(){ 
    $(this).addClass('playing'); 
    }); 

任何幫助表示讚賞!


謝謝大家。我使用這個問題在HackerYou上顯示〜30個學生如何使用計算器從社區獲得頂級幫助。

+1

退房.delay()函數。 –

+0

@Wes - 提醒他們對他們的問題進行一些研究,並提出具體問題(過於寬泛,或者未經研究的問題往往會被低估)。另外值得注意的是,如果可能的話,將代碼發佈到像JSFiddle,JSBin或類似服務的服務往往會加快響應速度 – ochi

回答

10

嘗試使用指定10秒延遲的setTimeout。

$('.albums img').on('click',function(){ 
    var $this = $(this).addClass('playing'); 
    window.setTimeout(function(){ 
     $this.addClass('finsihed'); 
    }, 10000); //<-- Delay in milliseconds 
    }); 
+0

感謝大家。我使用這個問題來顯示30個學生如何使用stackoverflow從社區獲得頂尖的幫助。 – wesbos

0

您可以使用該功能setTimeout() 10秒後調用回調函數。

例如。

var timeout = null; 

$('.albums img').on('click', function() { 
    var self = this; 

    $(self).addClass('playing'); 

    // clear previous timeout if it exists 
    timeout && clearTimeout(timeout); 

    // set the timeout 
    timeout = setTimeout(function() { 
     $(self).addClass('finished'); 

    // 10 seconds 
    }, 10e3); 
}); 
1

您可以使用.delay()

$('.albums img').on('click', function() { 
    $(this).addClass('playing').delay(3000).queue(function() { 
     $(this).addClass('finsihed') 
    }); 
}); 

演示沿:Fiddle