延迟禁用元素?

时间:2013-10-14 18:33:36

标签: jquery

在jQuery中你怎么能禁用按钮并在几秒后重新启用它?

我尝试过使用.delay(###)。attr和.removeattr,但我无法使用它。从我所看到的,这是由于为动画制作的.delay,而我需要使用淡出?

3 个答案:

答案 0 :(得分:2)

var $btn =  $('input[type="button"]'),
    aFewSeconds = 3000;

$btn.prop({ disabled: true });

setTimeout(function(){
    $btn.prop({ disabled: false});
}, aFewSeconds);

你明白了。

答案 1 :(得分:1)

您可以使用window.setTimeout(func, delay, [param1, param2, ...]);。这是一个按钮,单击时将被禁用一秒,但可以使用任何东西来调用此操作:

<强> HTML

<button class='tempDisable'>Click Me</button>

JavaScript (包含在就绪功能中)

$(".tempDisable").click(function () {
    $(this).prop("disabled", true);
    setTimeout(function (el) {
        $(el).prop("disabled", false);
    }, 1000, this);
});

请参阅jsFiddle

答案 2 :(得分:0)

我不是100%确定这会解决您的问题,但请尝试使用$elem.attr('disabled', true)停用,$elem.attr('disabled', false)再次启用。某些原因$elem.removeAttr('disabled')可能不可靠。

.delay()不应该成为问题,请发布您的代码。