Ответ 1
При перезагрузке через ajax вызовите .button()
(или любой другой вариант, который вы используете) в этом context, например:
$.ajax({
//other options..
success: function(data) {
//insert elements
$(".button", data).button();
}
});
Это будет выполняться .button()
на элементах только в ответе (а не на других уже на странице /DOM в другом месте) с помощью class="button"
.
Вы не можете использовать .live()
или что-то в этом роде, которое основано на пузырьках событий, а не на самом деле ничего общего с добавлением/удаление элементов... когда дело доходит до плагинов, вам нужно будет выполнить их снова против новых добавляемых вами элементов. Или менее эффективным, но более общим подходом будет .livequery()
плагин, который используется следующим образом:
$(".button").livequery(function() {
$(this).button();
});
Как я уже сказал, это не самая эффективная вещь в мире, поскольку она фактически контролирует DOM для изменений различными способами.