Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с Confirm, jQuery animate в Chrome (https://javascript.ru/forum/jquery/22159-problema-s-confirm-jquery-animate-v-chrome.html)

dimonrus66 08.10.2011 13:15

Проблема с Confirm, jQuery animate в Chrome
 
В общем есть такой код:
$('a').click(function(){
  if(confirm('Confirm me!'))
  {
    $(this).animate({marginLeft:100},1000,'linear',function(){
      alert('message');
  });
}
});

Проблема заключается в следующем. В Хроме после вывода окна confirm и нажатия кнопки ОК происходит пауза, после которой объекту, к которому применяется animate, ставится margin-left: 100px, а затем выполняется complete-функция(в которой alert).
Так вот, продолжительность этой паузы зависит от времени между появлением окна confirm и нажатием кнопки ОК. В остальных браузерах вроде все работает нормально. Это какой-то баг jQuery, браузера или я что-то не так делаю?
Кому интересно, вот пример: http://narod.ru/disk/27682554001/index.html.html

zebra 08.10.2011 14:21

Да просто укажите смещение не 100, а '100px'

dimonrus66 08.10.2011 14:37

Цитата:

Сообщение от zebra (Сообщение 130298)
Да просто укажите смещение не 100, а '100px'

не. это не решает проблему.

zebra 08.10.2011 15:08

Просто у меня почему то не работала анимация из-за этого :) Потестил скпирт ешё раз и получилось в хроме так :
$('a').click(function(e) {
		e.preventDefault();
		var elem = $(this);
		setTimeout(function() {
			if(confirm('Confirm me!')){
				elem.animate({ 'margin-left' : '100px'}, 100,function(){
					console.log('hello!');
				});
			}				
		}, 100);
	});

dimonrus66 08.10.2011 16:54

Ух ты, правда заработало! Спасибо! :)


Часовой пояс GMT +3, время: 08:41.