Почему диалоговое окно jQuery UI запускается слишком рано? - PullRequest
1 голос
/ 08 июня 2009

Я пытаюсь создать всплывающее сообщение в моем приложении. В случае успеха я хочу открыть диалог, анимировать его ... и затем закрыть его. Я думаю, что лучший вопрос должен был быть: «Как создать временное всплывающее окно в Jquery ... но в любом случае, когда я запускаю свой код, кажется, что мое диалоговое окно появляется на долю секунды. Если я удаляю диалоговое окно (« закрыть ») ) до тех пор, пока jquery не запускает эти команды последовательно или параллельно?

$.ajax({
   type: "POST",
   url: "/Sales",
   data: { customer: [id] },
   success: function(msg) {
      $('#thanks').dialog('open');
      $('#thanks').animate({ backgroundColor: '#aa0000', color: '#fff', width: 500 }, 2000); 
      $('#thanks').dialog('close');
   }
});

Ответы [ 4 ]

5 голосов
/ 08 июня 2009

со строками, как у вас это будет работать почти синхронно. Попробуйте

 $('#thanks').dialog('open').animate({ backgroundColor: '#aa0000', color: '#fff', width: 500 }, 2000).dialog('close');
1 голос
/ 08 июня 2009

Возможно, вы хотите закрыть диалоговое окно в обратном вызове из функции animate :

$.ajax({
   type: "POST",
   url: "/Sales",
   data: { customer: [id] },
   success: function(msg) {
      $('#thanks').dialog('open');
      $('#thanks').animate({ backgroundColor: '#aa0000', color: '#fff', width: 500 }, 2000, "linear", function(){ $('#thanks').dialog('close'); }); 
   }
});

Но я думаю, вам лучше использовать плагин, такой как jGrowl ?

0 голосов
/ 08 июня 2009

Вызов .dialog('close') не ждет вашей анимации. Но действительно ли вы хотите закрыть диалоговое окно сразу же, или вам лучше подождать, пока пользовательский ввод (т. Е. Ссылка / нажатие кнопки) закроет его?

0 голосов
/ 08 июня 2009

может и не дождаться окончания анимации. попробуйте добавить ожидание 2000 или цепочку закрытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...