Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает .on (https://javascript.ru/forum/jquery/47701-ne-rabotaet.html)

zsaz 04.06.2014 05:33

Не работает .on
 
Есть код http://yadi.sk/d/m-Im361ySCGXK

почему код [1] не работает в этом месте в таком виде? Но если его перенести в место [2], то он отлично работает.

WorM32 04.06.2014 08:59

Может потому что .modalWindow еще нет на странице? Попробуйте в месте [1] написать так

$(document).on('click', '.modalWindow .my-close', function { бла бла бла });

zsaz 04.06.2014 09:26

Цитата:

Сообщение от WorM32 (Сообщение 314722)
Может потому что .modalWindow еще нет на странице? Попробуйте в месте [1] написать так

$(document).on('click', '.modalWindow .my-close', function { бла бла бла });

ну вообще да, изначально .modalWindow нет на странице. Но такое ощущение, что раньше, когда я писал подобный код, но вместо .on использовал .live, то все работало. Но сейчас узнал, что в новых версиях .live не поддерживается.

WorM32 04.06.2014 10:50

Цитата:

Сообщение от zsaz (Сообщение 314726)
ну вообще да, изначально .modalWindow нет на странице. Но такое ощущение, что раньше, когда я писал подобный код, но вместо .on использовал .live, то все работало. Но сейчас узнал, что в новых версиях .live не поддерживается.

Раньше live отличался от on, но синтаксис был идентичный on. Сейчас live это просто синоним для on.

zsaz 04.06.2014 12:13

Цитата:

Сообщение от WorM32 (Сообщение 314738)
Раньше live отличался от on, но синтаксис был идентичный on. Сейчас live это просто синоним для on.

Так может вы сможете сказать, почему раньше с .live работало, а с .on не хочет. И как сделать, чтобы оно начало работать нормально как с .live

WorM32 04.06.2014 15:04

Цитата:

Сообщение от zsaz (Сообщение 314755)
Так может вы сможете сказать, почему раньше с .live работало, а с .on не хочет. И как сделать, чтобы оно начало работать нормально как с .live

Я выше приводил пример, как должно работать с on.

BETEPAH 04.06.2014 17:51

Цитата:

Сообщение от WorM32
Сейчас live это просто синоним для on.

.live навешивался на document и делегировал к нужному селектору
Более точный синоним из прошлого - это .delegate, для которого необходимо было указывать узел навешивания обработчика. Тоже самое делается сейчас в .on
zsaz,
преимущество .on перед .live в том, что можно указать родителя, отличного от document


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