JQuery Script Время загрузки

Если у меня есть кнопка, которая устанавливает jquery script, есть ли способ убедиться, что кнопка неактивна до завершения script?

Ответ 1

Где-то в начале вашего script (возможно, на событии нажатия кнопки) установите для атрибута disabled значение true:

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

Затем, после завершения, удалите этот атрибут:

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

EDIT:

Если вы хотите получить (слегка) фантазию, измените текст кнопки во время выполнения работы. Если это кнопка изображения, вы можете изменить src на дружественное сообщение "please wait". Вот пример текстовой версии кнопки:

$("#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

Это одна из областей, где мне нравится расширять 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();

Я могу много отключить/включить элементы управления.

Ответ 3

Спасибо cletus за вашу функцию. Я использовал вашу функцию и создал свой собственный для переключения отключенных элементов.

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