Примените jQuery, виджеты UI к ajax загрузили элементы

Я хочу активировать jQueryUI виджет кнопки на данном селекторе, позволяет, говорят '.button'.

Что лучший способ состоит в том, чтобы автоматически активировать виджет на каком-либо новом '.button' элементы, вставленные в DOM после начальной загрузки страницы через ajax.

Ранее, я использовал livePlugin с кодом что-то вроде этого:

$('.button')
    .live(function(){
        $(this).button();
    })

С тех пор 'живой' был перемещен в jQuery, удаляют сердцевину живой функции, требует типа события как первого параметра, таким образом, это больше не возможно. Есть ли альтернативный метод в ядре jQuery, которое достигнет этого?

7
задан th3hamburgler 1 April 2010 в 11:12
поделиться

1 ответ

У вас есть несколько вариантов. Во-первых, есть плагин liveQuery , например:

$(.button).liveQuery(function() { $(this).button(); });

Другой альтернативой является вызов селектора для ваших элементов при их загрузке, это, например, находит все .button only в ответ, чтобы не вмешиваться в существующие элементы перед вызовом ajax:

$.ajax({
   url: 'page.html'
   success: function(data) {
     //stuff...
     $('.button', data).button();
   }
});

Другой аналогичный подход, если у вас много чего происходит, - это включить ваши плагины в функцию, подобную этой:

function rigUI(context) {
  $('.button', context).button();
  $('.date', context).datepicker();
}

$(rigUI); // Load at document.ready, default context is document

//in ajax load love above call: rigUI(data);
8
ответ дан 7 December 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: