Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2016, 16:36
Аспирант
Отправить личное сообщение для Untropee Посмотреть профиль Найти все сообщения от Untropee
 
Регистрация: 04.08.2015
Сообщений: 59

Почему callback у animate запускается 2 раза?
Только заметил что функция обратного вызова у animate запускается два раза. Вот пример:

$("body").click(function(){

	$(".popup_static, .sale").animate({opacity:1},300,function(){alert()});
	
})


Алерт вылетает 2 раза. Почему так? Как сделать чтобы один раз?

Последний раз редактировалось Untropee, 05.01.2016 в 16:39.
Ответить с цитированием
  #2 (permalink)  
Старый 05.01.2016, 16:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Untropee,
два элемента == два callback
Ответить с цитированием
  #3 (permalink)  
Старый 05.01.2016, 16:52
Аспирант
Отправить личное сообщение для Untropee Посмотреть профиль Найти все сообщения от Untropee
 
Регистрация: 04.08.2015
Сообщений: 59

Да, спасибо, только что нашёл ответ в буржунете)
Ответить с цитированием
  #4 (permalink)  
Старый 05.01.2016, 17:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

animate окончание очереди два варианта
Untropee,
запуск алерта по окончании всех анимаций на данных элементах
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>animated demo</title>
  <style>
  div {
    background: yellow;
    border: 1px solid #AAA;
    width: 80px;
    height: 80px;
    margin: 0 5px;
    float: left;
    opacity: 0;
  }

  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<button id="run">Run</button>

<div class="popup_static"></div>
<div  class="sale"></div>


<script>
var d = $(".popup_static, .sale");
$("body").click(function(){
	d.css({opacity:0}).animate({opacity:1},2000,function(){!d.queue( "fx" ).length && alert('test')});
})

d.animate({opacity: 1}, 2000).promise().done(function() {
    alert('test');
});

</script>

</body>
</html>

Последний раз редактировалось рони, 05.01.2016 в 17:32.
Ответить с цитированием
  #5 (permalink)  
Старый 05.01.2016, 17:17
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

d.animate({opacity: 1}, 300).promise().done(function() {
    alert('test');
});
Ответить с цитированием
  #6 (permalink)  
Старый 05.01.2016, 17:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

yazonnile,
ок
Ответить с цитированием
  #7 (permalink)  
Старый 05.01.2016, 21:46
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

Упс. Вы раньше написали? О_о
Я не копировал) Мистика
Ответить с цитированием
  #8 (permalink)  
Старый 05.01.2016, 21:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

yazonnile,
я добавил ваш вариант в свой код для примера, хотя на удивление похоже, как я пишу

Последний раз редактировалось рони, 05.01.2016 в 21:50.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос с callback, почему во второй раз возвращает 2 ответа? sovsem-nub AJAX и COMET 1 01.12.2015 19:52
почему функция вызывается 2 раза? imedia Элементы интерфейса 2 13.02.2015 14:15
Почему не запускается onblur Skriptor Ваши сайты и скрипты 6 25.12.2014 18:05
Работа с textarea Rompo Events/DOM/Window 14 16.12.2013 17:41
Не запускается callback функция в Ext.Loader.Require DofD ExtJS 2 05.12.2012 20:49