Jquery .attr"禁用"过了几秒钟

时间:2014-05-04 12:47:18

标签: jquery settimeout

我想在5秒后禁用启动按钮,但我无法让它工作。 与.delay相同,它立即进入禁用模式。 我该如何解决?

setTimeout(function() {
$('.start').click(function(){
$('.start').attr("disabled", true); 
});
}, 5000);

3 个答案:

答案 0 :(得分:3)

你已经完成了你的代码。

$('.start').click(function(){
    var btn = $(this);
    setTimeout(function() {
        btn.prop("disabled", true); 
    }, 5000);
});

Live Example (我将5000改为500,所以你不必等待这么久)

另外,我相信disabled使用prop而不是attr,情况会更好。


实际上使用了比我需要的更多jQuery,DOM元素就是我们所需要的:

$('.start').click(function(){
    var btn = this;
    setTimeout(function() {
        btn.disabled =  true; 
    }, 5000);
});

Live Example


以上两种情况都假设您要在点击后五秒钟禁用该按钮。如果您只想在五秒钟后禁用它,请将代码移出点击处理程序:

setTimeout(function() {
    $(".start").prop("disabled", true);
}, 5000);

Live Example

答案 1 :(得分:1)

这样做:

setTimeout(function(){
  $('.start').prop("disabled", true); 
},5000)

处理布尔值时使用prop

答案 2 :(得分:0)

试一试:

setTimeout(function() {
$('.start').attr("disabled", true); 
}, 5000);