у меня есть код, что bind's по щелчку действие с загрузкой страницы, это - ссылка. Когда я нажимающий его, он отправляет ajax запрос, и содержание замены в некотором отделении с jQuery добавляют () функцию. Это новое содержание имеет ссылки, и я должен связать некоторое действие для них, но меня could't.. свяжите не работал, я думаю, потому что jQuery добавляет, не обновляет дерево DOM. Как я мог получить позднее связывание?
Позднее связывание теперь доступно с использованием события jQuery live ():
$('a.my-links-class').live('click', function() {
// do your link action here
});
You необходимо использовать функцию jQuery live
, которая будет связывать событие со всеми элементами, соответствующими селектору, независимо от того, когда они были созданы.
Вы можете использовать функцию $ (). Live (событие, функция)
из jQuery 1.3+. $ ("a"). Live ("click", myClickFunc)
свяжет myClickFunc
так же, как $ ("a"). Click (myClickFunc)
или $ ("a"). Bind ("click", myClickFunc)
, но события будут привязаны "в реальном времени", поэтому элементы, которые добавляются в DOM после вызова этой функции, также будут привязаны.
Вы можете удалить живые события с помощью $ (). Die ()
.
Для получения дополнительной информации о $ (). Live см. документацию к нему .
Другой вариант - иметь функцию для привязки элементов к определенному контексту (с использованием редко используемой функции $ selector второй параметр):
function myBindEvents(context) {
$("a", context).click(myClickFunc);
}
и вызывайте его всякий раз, когда вы обновляете элемент с помощью AJAX:
$("<div>").load("...", "...", function(){myBindEvents(this);});
Надеюсь, это поможет. :)