.on
принимает другой набор параметров по сравнению с .live
. Вы не можете просто заменить одно на другое (а $(selector).on.live
не имеет смысла) .
Правильный синтаксис:
$(document).on('click', selector, function(){});
Это будет привязано ко всем элементам, которые соответствуют selector
, независимо от того, когда они добавлены в DOM.
Примечание:
Вместо document
вы можете использовать родителя элемента (ов), пока этот родитель остается в DOM.
Например:
<div id="myDiv">
<p>Hello World</p>
<p>Hello World</p>
</div>
Тогда вы можете сделать:
$('#myDiv').on('click', 'p', function(){});
Это событие клика сработает для всех <p>
тегов, добавленных к #myDiv
.
Примечание:
$(selector).on('click', function(){})
- это то же самое, что и
$(selector).bind('click', function(){})
(jQuery 1.7.1 предлагает использовать .on
вместо .bind
)