С первого примера ....
$("div.spinedit i.modify-counter").on('click', function() {
alert("here");
});
Вы найти все элементы, когда страница загружается и после привязки обработчика событий для каждого из этих элементов , Если элемент DOM отсутствует в этот момент времени, он не собирается запускать обработчик событий ... как он мог запустить обработчик, если он не был вокруг, когда вы его установили ???
$(document).on("click", "div.spinedit i.modify-counter", function(e) {
alert("here");
});
Здесь вы найдете документ при загрузке страницы и привязке к нему обработчика кликов. Вы не привязка обработчика кликов к i.modify-counter
элементов. Тем не менее, второй параметр (например, "div.spinedit i.modify-counter"
) указывает обработчику, что он должен стрелять только когда
- элемент, который был щелкнул был дочерний элемент документа, и,
- элемент, который был щелкнул спичках который вы прошли.
Это тонкий, но большой разница. Поскольку обработчик находится на document
, нет необходимости перепроверять обработчик кликов, когда новые элементы AJAX добавляются позже ... потому что обработчик не находится в этих элементах.
Каждый раз, когда нажата клавиша document
, обработчик будет оценивать, соответствует ли этот селектор. Если это произойдет, событие будет запущено.
Помните, что в будущем публикация (не) рабочей скрипки всегда поможет вам: – silentw
Вы также должны указать соответствующую разметку HTML. Очевидно, что HTML, который вы получаете из ajax, не то же самое. –
ЭТО РАБОТАЕТ http://jsfiddle.net/t3pwn/ – jtheman