JQuery脚本加载时序

时间:2009-03-09 05:24:49

标签: javascript jquery

如果我有一个关闭jquery脚本的按钮,有没有办法确保按钮在脚本完成之前处于非活动状态?

3 个答案:

答案 0 :(得分:36)

这是我喜欢扩展jQuery的一个领域:

$.fn.disable = function() {
    return this.each(function() {
        if (typeof this.disabled != "undefined") this.disabled = true;
    });
}

$.fn.enable = function() {
    return this.each(function() {
        if (typeof this.disabled != "undefined") this.disabled = false;
    });
}

然后你可以这样做:

$("#button").disable();
$("#button").enable();

我发现自己很多都禁用/启用控件。

答案 1 :(得分:10)

在脚本开头的某个地方(可能是按钮的click事件),将按钮的disabled属性设置为true:

$("#mybutton").attr("disabled", true);

然后,完成后,删除该属性:

$("#mybutton").removeAttr("disabled");

编辑:

如果您想获得(略微)幻想,请在工作时更改按钮的文字。如果是图像按钮,您可以将src更改为友好的“请稍候”消息。以下是按钮文本版本的示例:

$("#mybutton").click(function() {
  var origVal = $(this).attr("value");

  $(this).attr("value", "Please wait...");
  $(this).attr("disabled", true);

  //Do your processing.

  $(this).removeAttr("disabled");
  $(this).attr("value", origVal);
});

答案 2 :(得分:3)

感谢cletus的功能。我已经使用了你的函数并创建了自己的函数来切换禁用的元素。

$.fn.toggleDisable = function() {
    return this.each(function() {
        if (typeof this.disabled != "undefined"){
                if(this.disabled){
                    this.disabled = false;
                }else{
                    this.disabled = true;
                }
        }
    });
}