addClass с использованием .live() с jQuery
Вопрос
В настоящее время я использую .load()
функция для загрузки контента в контейнер div
динамически.Загружаемый контент представляет собой табличные данные, которые я хотел бы нанести на полосу зебры.Зебровое чередование легко выполнить на статической странице, но я не могу понять, как зебровое чередование нового контента, загруженного в контейнер. div
.
Вот код, с которым я пытаюсь работать:
$("table tbody tr:even").live("EVENT", function(){
$(this).addClass("alt");
});
«СОБЫТИЕ» не должно быть "click"
, или "mouseover"
но "onload" или что-то в этом роде.Есть ли способ сделать это?Спасибо за ваши предложения!
~Джаред
Решение
Вам нужно просто запустить код чередования зебры в функции обратного вызова для load().
$("#myDiv").load( "/somecontroller/someaction", { data: value }, function() {
$("#myDiv").find( "table tbody tr:even" ).addClass( "alt" );
});
Другие советы
В качестве расширения ответа tvanfosson (что в данном случае является лучшим выбором), функция live() в настоящее время поддерживает только некоторые события.Это из документации по адресу http://api.jquery.com/:
Возможные значения события:щелчок, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup
В настоящее время не поддерживается:размытие, фокус, mouseenter, mouseleave, изменить, отправить
Чтобы динамически добавлять данные в таблицу, вам нужно использовать другой код.Не так ли?внутри этой функции после загрузки данных в таблицу добавьте класс CSS в строки.Используя метод ниже в этой функции,
$("table tbody tr:even").removeClass("alt").addClass("alt");
Я делаю это таким образом, чтобы вызвать событие с помощью jquery 1.4.2.
$("body").live("mousemove", function(){ $(".zebra tr:nth-child(even)").addClass("alt");});