2010-05-19 4 views
5

Я хотел бы иметь такое же поведение, что и «живое», но без использования событий. Это возможно? Мне нужно это, потому что я использую другой файл javascript, который создает некоторые элементы, к которым мне нужно добавлять классы css.JQuery 'live' для селектора?

Следующий код должен быть выполнен после добавления такого элемента в дом: $ (". MyClass"). AddClass ("myNewClass");

Возможно ли это?

ответ

2

liveQuery плагин способен на это.

http://brandonaaron.net/code/livequery/docs

Из документов:Живой запрос также имеет возможность вести огонь функция (обратный вызов), когда он соответствует новый элемент и другую функцию (обратный вызов), когда элемент больше не соответствует.


EDIT:

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

$('.myClass').livequery(function() { $(this).addClass('myNewClass') }); 
+0

Работает отлично! Спасибо – SaphuA

+0

Другим вариантом является повторная переделка, когда форма изменяется, например, на успех ajax. Livequery может немного замедлить работу. –

+0

@James Westgate - Какую форму вы имеете в виду? OP хотел добавить класс для элементов, добавленных в DOM другим js-файлом, который нельзя редактировать. Нет никакого события для привязки (или перевязывания) этого. – user113716

0

Может быть, я не понимаю, о чем вы спрашиваете, но если вы используете JQuery, почему вы можете не использовать событие приводом обновления?

Решение LiveQuery, предлагаемое Патриком (которое будет работать отлично), использует события в фоновом режиме, как «живые».

+0

Потому что я в странной ситуации;) Я не могу изменить код javascript, который я использую, и не могу запустить события. Я знаю классные имена, которые он использует для созданных элементов, поэтому подумал, что это будет лучшим решением для меня. – SaphuA

Смежные вопросы