2009-06-23 3 views
6

Я не могу сделать мой div видимым с jquery show(), пока моя функция не закончится! Он действительно работает в IE/FF, но не в Chrome. Как я могу убедиться, что мой элемент виден перед продолжением моей функции?Подождите, пока jQuery show() закончит работу до продолжения функции?

Вот мой код:

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

С кодом, который у вас есть, элемент _should_ будет отображаться непосредственно после этого, и если это не работает в Chrome, это будет считаться ошибкой. Вы уверены, что у вас нет чего-то вроде «медленного» или скорости внутри шоу? –

+0

Нет, я не использую параметры скорости. Кстати, когда я их использую, мой div просто не появляется в любом браузере (FF/IE/Chrome), пока функция не закончится. Действительно странно. – David

ответ

15

Добавить функцию обратного вызова, чтобы показать:

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

Функция обратного вызова будет вызываться, когда анимация завершена.

+0

im с помощью scrollTop() и can not display none, поэтому я делаю это, чтобы ждать, чтобы продолжить, но даже это работает, анимирует шоу слева и делает странные вещи ... –

0

ИМО, было бы лучше, чтобы положить оставшуюся часть вашей функции в параметре обратного вызова для show:

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

Оговорки здесь является то, что обратный вызов обжигает (отдельно) для каждого элемента, который находится в селектор. Хорошо, если вы показываете только один элемент.

+0

надеюсь, что будет только один элемент с идентификатором progressbar_area! – redsquare

Смежные вопросы