очередь выполнения функций
Здравствуйте.
код:
$('#id1').on('mouseenter', function(){
$('.class1').addClass('class2');
});
$('.class2').on('mouseenter', function(){
alert('class2');
});
не срабатывает. и понятно почему. потому что class2' на момент запуска "mouseenter" ещё не существует. Отсюда следует. как поставить очерёдность. Чтобы вторая функция не выполнялась, пока не закончится первая. |
Dtri,
поставить вторую функцию на элемент в котором находится class1 |
Или делегирование.
$(document).on('mouseenter', '.class2', function() {
alert('class2');
});
|
спасибо.
|
Цитата:
|
Цитата:
? |
$(document).on('click', '.class1', function() {
$('.class1').addClass('class2');
}, function() {
alert('class2');
});
правильно ли я вас понял? |
Dtri, http://api.jquery.com/on/
давно бы выложил полный тестовый пример и получил ответ |
Цитата:
только вместо document можно элемент ближе к 'class2' ваш пример в 7 посте неверный |
Цитата:
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');
});
});
но возникло чувство что я делаю что-то не так. |
| Часовой пояс GMT +3, время: 12:41. |