Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2018, 14:56
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

единожды выполнить callback после .hide() нескольких элементов.
здравствуйте.
Столкнулся с такой проблемой:
при выполнении jquery функции
.hide(duration, callback)
callback выполняется для каждого скрываемого элемента, (это подтверждается документацией и моими экспериментами).
А как быть, если необходимо чтобы callback выполнился строго 1 раз, после скрытия всех элементов?
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2018, 15:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

callback функция имеет два параметра, один из которых индекс элемента в наборе, проверив который с длиной набора можно определить выполнение чего либо.
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2018, 15:55
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

понял! спасибо за наводку, попробую воспользоваться.
А я прочитал здесь: http://jquery.page2page.ru/index.php...ементов
что в callback не передается параметров. или там устаревшая инфа?
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2018, 16:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от winch
что в callback не передается параметров
Это так.
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2018, 16:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от winch
в callback не передается параметров
А да, все верно, но это не проблема:

var obj = $(selector).hide(300, function() {
здесь можно узнать является ли this последним в наборе obj
})
Ответить с цитированием
  #6 (permalink)  
Старый 04.04.2018, 16:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Можно так: https://jsfiddle.net/7dtre9gL/
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2018, 16:22
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

Воспользовался вариантом по ссылке от Nexus. так работает.
А как узнать через this последний ли это элемент, я так и не понял.
Ответить с цитированием
  #8 (permalink)  
Старый 04.04.2018, 16:30
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от winch Посмотреть сообщение
Воспользовался вариантом по ссылке от Nexus. так работает.
А как узнать через this последний ли это элемент, я так и не понял.
сравнить this == с последним элементом набора.
Ответить с цитированием
  #9 (permalink)  
Старый 04.04.2018, 16:40
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

Сообщение от j0hnik Посмотреть сообщение
сравнить this == с последним элементом набора.
а чтобы получить последний элемент, надо ещё раз делать запрос по этому же селектору?
как-то не очень лаконично получается.
Ответить с цитированием
  #10 (permalink)  
Старый 04.04.2018, 16:43
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

winch, самый короткий вариант вам написал Nexus.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить функцию после выполнения другой? allanmiln Events/DOM/Window 2 04.03.2013 03:03
Выполнить функцию после выполнения загрузчика ilion Элементы интерфейса 1 21.02.2013 18:33
Выполнить функцию после окончания всей анимации De-Luxis jQuery 2 24.11.2011 17:11
Выполнить код после обработки скрипта RasimS Общие вопросы Javascript 2 11.02.2011 15:25
Выполнить код после загрузки изображения EugenyK Events/DOM/Window 2 15.07.2008 10:09