Try using a simple timeout
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);
});
Demo: Fiddle
also try using 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)
});