El escenario es como: estoy usando Jquery para implementar algunas funciones de Ajax. Por ejemplo: cuando un usuario hace clic en un botón "obtener datos", Jquery llamará a la función .ajax para recuperar algunos datos del servidor. Este proceso puede llevar algo de tiempo, así que agregué las funciones .ajaxSend y .ajaxComplete para mostrar algo de animación para el proceso de espera (en realidad, un gif 'Cargando datos' dentro de un div con índice z: 999 para estar arriba de otros divs dentro del) Durante el proceso de espera (el 'Cargando datos'), me gustaría evitar que los usuarios hagan clic en otros botones (por ejemplo: Tengo otras pestañas, botones debajo del pequeño gif 'Cargando datos'). La forma en que esto es logrado por:cómo evitar la interacción de los usuarios cuando se espera la respuesta de ajax
$("body").ajaxSend(function()
{
$(this).append('<div id="loading">Data Loading<\/div>');
$("div#error").remove();
$(this).children().not('#loading').css({'opacity':0.22});
});
$("body").ajaxComplete(function()
{
$("div#loading").remove();
$(this).children().not('#loading').css({'opacity':1});
});
Sin embargo, no creo que el cambio de la opacidad es la mejor manera. A menos que haga que la opacidad sea 0, los usuarios aún pueden hacer clic en otros botones/pestañas. No sé cómo evitar totalmente cualquier interacción del usuario durante este proceso? ¡¡Gracias!!
en realidad, estoy usando JqueryUI también. Sí, acabo de probar la opción modal de diálogo. Es fácil lograr el efecto de bloque que quiero. Sin embargo, ¿hay alguna manera de eliminar el cruce (botón de cierre) en la esquina superior derecha del cuadro de diálogo? – WilliamLou
Vea este http://stackoverflow.com/questions/896777/remove-close-button-on-jqueryui-dialog –
gracias. Elegí esta como mi respuesta ya que ya utilicé JqueryUI para no tener que importar otro complemento solo para el efecto blockUI – WilliamLou