JQuery.live() и готовый документ

Я пытаюсь установить стиль CSS с помощью .live(). Функция CSS:

$(".data tr:odd").addClass("evenrows");

Есть ли способ, чтобы это происходило автоматически при подготовке документа, но все же для будущих элементов? У меня есть событие ajax на странице, которая переупорядочивает таблицу. Мне нужны эти вновь созданные строки, чтобы применить их .addClass.

Спасибо заранее.

3 ответа

вы можете использовать плагин Livequery. Он связывается с событиями мутации DOM для отслеживания изменений в DOM, а re binds и re выполняет код, прикрепленный к ним, например:

$(".data tr:odd").livequery(function(){
 $(this).addClass("evenrows");
});


Мы достигли этого, подключившись к делегатам события Ajax и выполняя то, что мы хотим там. См. "Завершить" здесь: http://docs.jquery.com/Ajax/jQuery.ajax#options

Вы должны использовать Live для присоединения любых обработчиков событий к этим новым строкам. См.: http://docs.jquery.com/Events/live#typefn


В настоящее время наш JavaScript настраивает глобальную функцию вызова ajax, которая принимает необходимые параметры. Использование функции шаблона с параметрами расширения, доступными для внесения изменений, которые вы хотите сделать, может устранить ненужный дублированный код и открыть возможности для более управляемого кода.

Пример:

GlobalObject.AjaxFunction(sUrl, SData, fnOnSuccess, fnOnError, oExtension)
{
 //Set up Ajax process
 // check type of extension as a function
 if (typeof oExtension === 'function')
 {
 oExtension();
 }
}

Это позволит вашему коду иметь общую доступность для после обработки ajax.

Надеюсь, что это поможет в контексте ваших потребностей, если я не совсем понял комментарий, чтобы сообщить мне!

licensed under cc by-sa 3.0 with attribution.