jquery在特定时间禁用按钮

maz*_*ztt 9 asp.net jquery

我想在特定时间禁用按钮.我怎样才能做到这一点?

End*_*der 10

由于这可能是您可能想重复的任务,我认为最好的方法是扩展jQuery,如下所示:

$.fn.timedDisable = function(time) {
    if (time == null) { time = 5000; }
    return $(this).each(function() {
        $(this).attr('disabled', 'disabled');
        var disabledElem = $(this);
        setTimeout(function() {
            disabledElem.removeAttr('disabled');
        }, time);
    });
};
Run Code Online (Sandbox Code Playgroud)

这将允许您在一组匹配元素上调用函数,这将临时禁用它们.在编写时,您只需调用该函数,所选元素将被禁用5秒.你会这样做:

$('#some-button').timedDisable();
Run Code Online (Sandbox Code Playgroud)

您可以通过更改5000以下行来调整默认时间设置:

if (time == null) { time = 5000; }
Run Code Online (Sandbox Code Playgroud)

您可以选择传递时间值(以毫秒为单位)来控制元素的禁用时间.例如:

$('#some-button').timedDisable(1000);
Run Code Online (Sandbox Code Playgroud)

这是一个有效的演示:http://jsfiddle.net/fG2ES/


nc3*_*c3b 9

禁用该按钮,然后使用setTimeout运行一个在几秒钟后启用按钮的功能.

$('#some-button').attr("disabled", "disabled");
setTimeout('enableButton()', 5000);

function enableButton(){
   $('#some-button').removeAttr('disabled');
}
Run Code Online (Sandbox Code Playgroud)

  • @Ender它不起作用,因为你的`enableButton`函数不在全局范围内,*way*`setTimeout`被调用.见:http://jsfiddle.net/RPQmM/1/ (2认同)