2012-11-14 39 views
2

我在提交按鈕上放了一個延遲,並添加了一個讓按鈕呈灰色的類。如何在提交按鈕後延遲刪除類?

$(document).ready(function() { 
    $('#buttonDelay').click(function() { 
     var delay = $(this); 
     delay.addClass('inactive'); 
     delay.prop('disabled', true); 
     setTimeout(function() { 
      delay.prop('disabled', false); 
     }, 8000).removeClass('inactive');      
    }); 
}); 

現在我喜歡刪除類'非活動',所以按鈕得到他原來的顏色回來。但上面的代碼不起作用。任何人有任何想法?

參見:http://jsfiddle.net/wPaUv/9/

乾杯, Kessi

回答

4

removeClass是一個jQuery方法,你不能鏈與setTimeout功能。

$(document).ready(function() { 
    $('#buttonDelay').click(function() { 
     var delay = $(this); 
     delay.prop('disabled', true).addClass('inactive') 
     setTimeout(function() { 
      delay.prop('disabled', false).removeClass('inactive'); 
     }, 8000); 
    }); 
}); 

http://jsfiddle.net/yphKm/

+1

這是真的; CSS中的'[disabled]'選擇器也可以使用。 – pimvdb

+0

謝謝,求助! – Kessi

+0

@Kessi歡迎您,因爲primvdb建議您也可以使用CSS':disabled'選擇器http://jsfiddle.net/C4YNh/ – undefined

1
$(document).ready(function() { 
$('#buttonDelay').click(function() { 
    var delay = $(this); 
    delay.addClass('inactive'); 
    delay.prop('disabled', true); 
    setTimeout(function() { 
     delay.prop('disabled', false).removeClass('inactive'); 
    }, 8000);      
}); 
}); 

你剛加入的removeClass部分錯線。

+0

我明白了......謝謝! – Kessi