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