2009-03-09 21 views
5

Bir jquery komut dosyasını kapatan bir düğmem varsa, komut tamamlanıncaya kadar düğmenin etkin olmadığından emin olmanın bir yolu var mı? (Muhtemelen düğmesinin click olayı üzerine) Senaryonuzun başındaJQuery Komut Dosyası Yükleme Zamanlaması

cevap

10

Bir yerlerde true düğmenin engelli özelliğini ayarlayın:

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

Sonra tam o niteliği kaldırdığınızda:

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

EDIT:

(Hafifçe) fantezi almak istiyorsanız, bu işi yaparken düğmenin metnini değiştirin. Bu bir resim düğmesiyse, src'yi "lütfen bekleyin" mesajını samimi bir şekilde değiştirebilirsiniz.

$("#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); 
}); 
33

Bu jQuery uzatmak ister tek alandır:

$.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; 
    }); 
} 

ve sonra yapabilirsiniz:

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

Kendimi cok düğmesi metin versiyonunun bir örnek devre dışı bırakma/etkinleştirme çok kontrol eder.

+0

Bu çözümü tercih ediyorum. Metni de değiştirmek için işlevi kolayca geliştirebilirsiniz. – Raithlin

3

İşleviniz için teşekkürler. İşlevinizi kullandım ve engelli öğeleri değiştirmek için kendim yarattım.

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