2014-01-29 51 views
0

我在ZeroClipboard上使用以下代碼來更改innerHTML文本和我的「複製到剪貼板按鈕」類。一旦點擊,這將激活課程轉換。jQuery:臨時toggleClass/addClass,removeClass?

client.on("complete", function(client, args) { 
      this.innerHTML = 'Copied to Clipboard'; 
      $(this).removeClass("btn-info").addClass("btn-success", 357);   
      }); 

有沒有一種方式,我可以做類的innerHTML臨時的這種變化?即改變班級(至btn-success)僅幾秒鐘,以指示該按鈕被點擊,並自動恢復到它的原始班級(btn-info)?並刪除添加innerHTML = 'Copied to Clipboard'

因此,類過渡將是'btn-info'>'btn-success'>'btn-info'。然後將innerHTML恢復到之前的狀態(每個按鈕都有不同的innerHTML)。

我嘗試過試用toggleClass,但沒有多少運氣。

回答

2

嘗試使用簡單的超時

client.on("complete", function (client, args) { 
    var html = this.innerHTML; 
    this.innerHTML = 'Copied to Clipboard'; 
    var $this = $(this).removeClass("btn-info").addClass("btn-success"); 

    //clear previous timer 
    clearTimeout($this.data('completeToggler')) 
    var timer = setTimeout(function() { 
     $this.addClass("btn-info").removeClass("btn-success"); 
     $this.html(html) 
    }, 2000); 
    $this.data('completeToggler', timer); 
}); 

演示:Fiddle


也嘗試使用toggleClass()

client.on("complete", function (client, args) { 
    this.innerHTML = 'Copied to Clipboard'; 
    var $this = $(this).toggleClass("btn-info btn-success"); 
    setTimeout(function() { 
     $this.toggleClass("btn-info btn-success"); 
    }, 2000) 
}); 
+0

謝謝。兩者都很好。我忘記了問我如何刪除innerHTML?我不知道如何恢復,因爲每個按鈕的HTML都不相同。將更新我的問題。 –

+0

@ElijahPaul查看更新後的第一個解決方案 –

+0

再次感謝。但是,超時解決方案似乎沒有工作。添加的按鈕類和innerHTML仍然存在。 –