Если я правильно понимаю ваши требования правильно, один из способов сделать это с Live Query плагин.
Живой запрос ... имеет возможность вести огонь функция (обратный вызов), когда он соответствует новый элемент и другая функция (обратный вызов) для того, когда элемент не больше соответствует
Например:
$('#someRegion a').livequery(function(){
do_something();
});
Обновление: Поскольку изменения DOM не выполняются через jQuery, к сожалению livequery не видит их. Я обдумал этот вопрос раньше и рассмотрел решение на основе опроса в
this answer.
Обновление: Опрос - это отвратительно, но если нет другой альтернативы, здесь существует опробовое решение, которое использует манипуляцию jQuery «манекен», чтобы сделать livequery «см.» Изменение. Вы только хотели бы рассматривать что-то вроде этого как последнее средство - если нет возможности связать метод обратного вызова.
Сначала установите livequery наблюдая контейнер, в котором будет происходить обновления:
$('div#container').livequery(function(){
$(this).css('color','red'); // do something
});
, а затем использовать setInterval()
, завернутый в функции удобства:
function pollUpdate($el, freq){
setInterval(function(){
$el.toggleClass('dummy');
}, freq);
};
Таким образом, вы можете иметь:
$(document).ready(function(){
pollUpdate($('div#container'), 500);
});
Адрес working example.Нажмите кнопку, чтобы добавить новые элементы DOM без jQuery, и вы увидите, что их подхватывают (в конце концов) и рестилируют с помощью livequery. Не красиво, но это действительно работает.
Обновление панели событий не вызывает никаких событий или не предлагает каких-либо обратных вызовов, на которые вы можете подключиться? – Magnar