2009-06-23 11 views
6

No puedo hacer que mi div sea visible con el jquery show() hasta que mi función termine. En realidad funciona en IE/FF pero no en Chrome. ¿Cómo puedo asegurarme de que mi elemento esté visible antes de continuar con mi función?¿Espera a que jQuery show() termine antes de continuar con la función?

Aquí está mi código:

function doOperation(){ 
    $("#progressbar_area").show(); 
    (...) 
} 
+0

Con el código que tiene allí, el elemento _debería mostrarse inmediatamente después y si eso no funciona en Chrome se consideraría un error. ¿Estás seguro de que no tienes algo como 'slow' o una velocidad dentro del show? –

+0

No, no uso los parámetros de velocidad. Por cierto, cuando los uso, mi div simplemente no aparece en ningún navegador (FF/IE/Chrome) hasta que la función termina. Realmente extraño. – David

Respuesta

15

Añadir una devolución de llamada para mostrar:

$("#progressbar_area").show(speed, function() {}); 

La función de devolución de llamada se llamará cuando la animación se ha completado.

+0

im utilizando scrollTop() y no se puede mostrar ninguno, así que estoy haciendo esto para esperar a continuar, pero, incluso eso funciona, está animando el espectáculo desde la izquierda y haciendo cosas raras ... –

0

OMI, sería mejor poner el resto de su función en el parámetro de devolución de llamada para show:

$("#progressbar_area").show("fast", function() {...}); 

La advertencia aquí es que la devolución de llamada es despedido (por separado) para cada elemento que se encuentra en el selector. Bien si solo está mostrando un artículo, sin embargo.

+0

con suerte, solo habrá un elemento con una identificación de progressbar_area! – redsquare

Cuestiones relacionadas