Si tengo un botón que activa un script jquery, ¿hay alguna manera de asegurarse de que el botón esté inactivo hasta que se complete el script?JQuery Script Load Timing
5
A
Respuesta
10
En algún lugar en el comienzo de su script (probablemente el evento click del botón), establece el atributo desactivado del botón para cierto:
$("#mybutton").attr("disabled", true);
Luego, cuando haya terminado, retire ese atributo:
$("#mybutton").removeAttr("disabled");
EDITAR:
Si desea obtener (un poco) elegante, cambie el texto del botón mientras está haciendo el trabajo. Si se trata de un botón de imagen, puede cambiar el src a un mensaje amistoso de "espere por favor". Aquí está un ejemplo de la versión de texto del botón:
$("#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
Ésta es un área en la que me gusta extender 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;
});
}
y luego se puede hacer:
$("#button").disable();
$("#button").enable();
me encuentro la desactivación/habilitación controla mucho.
3
Gracias cletus por su función. He utilizado tu función y he creado la mía para alternar elementos deshabilitados.
$.fn.toggleDisable = function() {
return this.each(function() {
if (typeof this.disabled != "undefined"){
if(this.disabled){
this.disabled = false;
}else{
this.disabled = true;
}
}
});
}
Cuestiones relacionadas
- 1. viewDidLoad y awakeFromNib timing
- 2. cómo animar a jquery load()
- 3. Anulando jQuery(). Load()
- 4. jQuery iframe load() event?
- 5. jquery focus on load
- 6. jquery fadeout, load, fadein
- 7. timeit versus timing decorator
- 8. Timing Objective-C código
- 9. Jquery load() y variables PHP
- 10. Prevenir JQUERY .load del caché
- 11. JQuery $ (documento) .ready ajax load
- 12. jquery load with inline javascript
- 13. jquery .live on load event
- 14. jQuery And Drupal page load
- 15. jQuery .load() con efecto fadeIn
- 16. Secuencias de comandos eliminadas con jQuery .load
- 17. jquery "load" for path contains spaces - ¡Necesito ayuda!
- 18. jQuery use .load() para anexar datos en lugar de reemplazar
- 19. función de llamada después de .load (Jquery)
- 20. Jquery .load Misma directiva de origen
- 21. perdiendo css después de jquery ajax load
- 22. Función de devolución de llamada JQuery .load()
- 23. ¿jQuery $ .ajax o $ .load permiten responseType arrayBuffer?
- 24. jQuery .load() no funciona en mi imagen
- 25. jQuery .load no está comprobando si mi elemento está cargado
- 26. conservar clases de elementos jquery-ui después de jquery .load()
- 27. JQuery Load usando MVC3 @ Url.Action no pasa parámetros correctamente
- 28. Problema con CSS y .load() jquery en IE
- 29. Load requireJS module inline the HTML body?
- 30. Lazy Load, Lazier Load .. Control Fade Speed?
Prefiero esta solución. También puede mejorar fácilmente la función para cambiar el texto. – Raithlin