Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2015, 03:50
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

очередь выполнения функций
Здравствуйте.

код:
$('#id1').on('mouseenter', function(){
     $('.class1').addClass('class2');
});

$('.class2').on('mouseenter', function(){
alert('class2');
});


не срабатывает. и понятно почему.
потому что class2' на момент запуска "mouseenter" ещё не существует.

Отсюда следует.
как поставить очерёдность.
Чтобы вторая функция не выполнялась, пока не закончится первая.
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2015, 08:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Dtri,
поставить вторую функцию на элемент в котором находится class1
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2015, 17:15
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Или делегирование.

$(document).on('mouseenter', '.class2', function() {
   alert('class2');
});
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2015, 20:06
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

спасибо.
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2015, 18:40
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Сообщение от Ruslan_xDD Посмотреть сообщение
Или делегирование.

$(document).on('mouseenter', '.class2', function() {
   alert('class2');
});
я что-то не понял. а Чем отличается ваш пример от моего?
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2015, 18:41
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Сообщение от рони Посмотреть сообщение
Dtri,
поставить вторую функцию на элемент в котором находится class1
не могли бы вы показать на примере
?
Ответить с цитированием
  #7 (permalink)  
Старый 10.01.2015, 18:50
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

$(document).on('click', '.class1', function() {
       $('.class1').addClass('class2');
        
    }, function() {
       alert('class2');
    });



правильно ли я вас понял?
Ответить с цитированием
  #8 (permalink)  
Старый 10.01.2015, 19:00
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Dtri, http://api.jquery.com/on/
давно бы выложил полный тестовый пример и получил ответ
Ответить с цитированием
  #9 (permalink)  
Старый 10.01.2015, 19:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Dtri
не могли бы вы показать на примере
вам показали в 3 посте Ruslan_xDD,
только вместо document можно элемент ближе к 'class2'
ваш пример в 7 посте неверный
Ответить с цитированием
  #10 (permalink)  
Старый 10.01.2015, 19:20
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Сообщение от bes Посмотреть сообщение
Dtri, http://api.jquery.com/on/
давно бы выложил полный тестовый пример и получил ответ


http://jsfiddle.net/akzwv375/

тут пример. он ещё далеко не доделанный.



нужно было повесить событие на
dropDown
но его не существовало когда запускался скрипт и отсюда возникло желание поставить запуск в очередь.

изначально хотел

$('.dropDown_'+id).on('mouseenter', function(){
                $(this).addclass('active');
            });
 $('.active').on('mousedown', function(){
                    $('#'+id).val( $(this).html()).trigger('change');
                    $('#'+id).trigger('inputChanged');
                });


естественно это не работало.

и тогда:
этой вложенностью вышел из положения.

$('.dropDown_'+id).on('mouseenter', function(){
                $(this).on('mousedown', function(){
                    $('#'+id).val( $(this).html()).trigger('change');
                    $('#'+id).trigger('inputChanged');
                });
            });

но возникло чувство что я делаю что-то не так.

Последний раз редактировалось Dtri, 10.01.2015 в 19:27.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
очередь выполнения функций setInterval imedia Элементы интерфейса 1 31.05.2014 19:22
Очередь функций gh321 jQuery 1 14.11.2013 16:04
Очередь выполнения FanAizu AJAX и COMET 14 14.08.2013 11:36
Последовательность выполнения функций Алек jQuery 8 21.06.2013 21:48
Последовательность выполнения функций nematod Общие вопросы Javascript 7 25.02.2011 03:16