Ознакомьтесь с новой функцией Events/live
в jQuery 1.3
Привязывает обработчик к событию (например, нажатию) для всех текущих и будущих элементов.
Поэтому, когда вы добавляете новые элементы, jQuery должен добавить к ним событие click с этим.
Если по какой-то странной причине вы не хотите обновляться до jQuery 1.3, вы можете проверить плагин livequery
.
РЕДАКТИРОВАТЬ в ответ на обновление :
Фактический код для использования .live
будет выглядеть примерно так:
$(function() {
$("a[id ^='commentLink-']").live('click', function(event) {
match = this.id.match(/commentLink-(\d+)/);
container = $("div#commentContainer-" + match[1])
container.toggle();
if (container.is(":visible")) {
container.load($(this).attr("href"));
} else {
container.html("Loading...");
}
event.preventDefault();
});
});
Внесенные изменения в основном во 2-й строке, где
$("a[id ^='commentLink-']").click(function() {
было заменено на
$("a[id ^='commentLink-']").live('click', function(event) {
Теперь я также получаю аргумент event
, который нужно использовать для event.preventDefault();
. Именно так вам рекомендуется останавливать события с помощью jQuery. Однако, если return false;
добьется цели, вы можете оставить это.
Я еще не использовал .live
, но я думаю, что это должно сработать. Убедитесь, что вы установили jQuery 1.3 на свой сервер, прежде чем пытаться это делать. :)