2014-01-29 50 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仍然存在。 –