Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обработчик внутри обработчика, к чему приведет? (https://javascript.ru/forum/jquery/23246-obrabotchik-vnutri-obrabotchika-k-chemu-privedet.html)

KamalovRadik 17.11.2011 15:33

Обработчик внутри обработчика, к чему приведет?
 
Если один обработчик поместить во внутрь второго обработчика, первый обработчик будет выполняться, только если выполнен второй обработчик, или ему все равно?

ksa 17.11.2011 15:43

Цитата:

Сообщение от KamalovRadik
Если один обработчик поместить во внутрь второго обработчика

Кто есть "обработчик"? :blink:

KamalovRadik 17.11.2011 15:46

.click() или .live()

ksa 17.11.2011 16:06

KamalovRadik, и как ты будешь совать один клик в другой?

walik 17.11.2011 16:42

Видимо имеется в виду:
$('.btn1').click(function() {
    $('.btn2').click(function() {
       //...
    });
});


Если да, то в данном случае обработчик на .btn2 будет вешаться повторно столько раз сколько будет кликов по .btn1
Зачем такое делать вообще ?

ksa 17.11.2011 16:43

Цитата:

Сообщение от walik
Видимо имеется в виду

Так х/з чего он там удумает... :D

KamalovRadik 17.11.2011 16:52

валик, спасибо.
А если вложенный обработчик не клик, а другой, все равно будет несколько раз выполняться??

DjDiablo 17.11.2011 16:56

по фигу какие это события.

что значит выполняться несколько раз ?

Данный пример работает примерно так.
внешний обработчик вешает обработчик на внутренний на событие.
к прмеру
$('.btn1').click(function() {
    $('.btn2').click(function() {
       alert("привет");
    })
});

теперь порядок действий пользователя и результат.

шаг 1) нажимаем btn2 - нечего не происходит
шаг 2) нажимаем btn1 - внешне нечего не меняется, но регистрируется обработчик события btn2
шаг3 ) нажимаем btn2 - видим алерт привет

walik 17.11.2011 17:08

DjDiablo,
Плюс еще чем больше кликаем на btn1 тем больше алертов будет при клике на btn2.


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