Как привязать какую-то функцию к несуществующему элементу?
-
05-07-2019 - |
Вопрос
Моя проблема: после загрузки какого-либо элемента через ajax я связываю некоторую функцию нажатия, но когда пользователь несколько раз загрузит этот же элемент, связанное действие будет повторяться (не заменять, по крайней мере, так, как это выглядит). Я пытался unbind
или click(function(){return false;});
, но это полностью удаляет действие click из элемента ...).
Каково стандартное решение такой проблемы?
Решение
Для большинства мероприятий вы можете использовать live()
(jQuery 1.3 +): р>
$("td").live("click", function() {
// do stuff
});
Это связывает событие click с <td>
элементами, которые появляются после того, как вы запустите этот код.
Это гораздо более чистое решение, чем попытка связать / открепить и убедиться, что одно и то же событие не привязано дважды к определенному элементу.
Другие советы
если вы используете jQuery 1.3.2, вы можете использовать $('').live('click', function() {});
, чтобы любые элементы, соответствующие этому селектору, имели действие. Это держит событие даже с новыми элементами.