2013-02-04 31 views
0

我對callbeck有這個問題。所以,當我的列表中會有超過2個元素的時候,我想爲第一個元素添加一些類。我想它的效果不錯,但我有一些Ajax的行動,這個列表加載後點擊一下。很多時候,我正在清理常見的內容<ul>,然後加載「新」。當我點擊快速加載下一個列表時,所有的元素都會收到類active。我的代碼有什麼問題?用jQuery進行一些回調後添加類

var sett_vertical_tabs_size = sett_vertical_tabs_breadcrumb.size(); 
sett_vertical_breadcrumb.delay(1000).fadeIn(1000, function() { 
    if(--sett_vertical_tabs_size > 2) return; 
    sett_vertical_tabs_breadcrumb.find('li').first().addClass('active'); 
}); 
+0

,直到前面的回調完成,也許禁用單擊處理的好地方。 – Barmar

+0

我做到了,也許是爲了短暫的時間... – Lukas

+0

你不應該在需要的時候指定。在AJAX調用之前禁用它,在回調函數中啓用它。 – Barmar

回答

0

這看起來像$ .Deferred

function getList(){ 
    return $.ajax({ 
      // your ajax here 
    }); 
} 

function showList(){ 
    return $.Deferred(function(mydef){ 
     $('#listy').fadeIn(1000, mydef.resolve); 
    }).promise(); 
} 

$.when(getList(), showList()) 
    .then(function(myAjaxResult){ 
     alert('fadeIn and AJAX request are both done'); 
     // 'myAjaxResult' is the server's response 
     // put your class add logic here 
}); 
+0

請注意,如果您仍想要之間的延遲(1000),請將其放入showList函數中,就像之前一樣。 –

+0

thx,我會檢查這2天 – Lukas