2013-06-11 128 views
0
function startCampaign(index, campaign_id) { 
    var btn = $('#toggleStateBtn' + index); 
    btn.html('<i class="icofont-pause"></i>'); 
    btn.removeClass('btn-success'); 
    btn.addClass('btn-warning'); 
    btn.attr('title', 'Pause this campaign'); 
    btn.width('9px'); 

    // Start campaign 
    $.ajax({ 
     url: '/campaign/startCampaign/' + campaign_id, 
     type: 'POST', 
     success: function(data){ 
      // Reflect the new state in status column 
      btn.html(data); 
     } 
    }); 
} 

function pauseCampaign(index, campaign_id) { 
    var btn = $('#toggleStateBtn' + index); 
    btn.html('<i class="icofont-play"></i>'); 
    btn.removeClass('btn-warning'); 
    btn.addClass('btn-success'); 
    btn.attr('title', 'Run this campaign'); 
    btn.width('9px'); 

    // Pause campaign 
    $.ajax({ 
     url: '/campaign/pauseCampaign/' + campaign_id, 
     type: 'POST', 
     success: function(data){ 
      // Reflect the new state in status column 
      btn.html(data); 
     } 
    }); 
} 

由於某種原因,這導致了奇怪的行爲。如果你在所有地方用$('#toggleStateBtn' + index)代替btn,那麼一切正常。jQuery對象參考問題

我的猜測是,如果你第一次調用startCampaign(),然後調用pauseCampaign()舊的btn引用變爲新的引用。但我不確定。

想法?

+1

你收到的錯誤是什麼? – tymeJV

+0

不是一個錯誤,只是奇怪的行爲。就像我在按鈕中看到ajax響應而不是按鈕圖標。 – Wes

+0

我有點困惑,你能解釋一下這段代碼在做什麼與你期望它做什麼? – tymeJV

回答

1

沒關係我是個笨蛋,btn.html(data)中的btn實際上是一個不同的控件。我無意間替換了。看起來我今天早上需要額外劑量的咖啡因。