Si entiendo correctamente su requerimiento, una forma de hacerlo es con el plug-in Live Query.
vivo consulta ... tiene la capacidad de disparar una función (devolución de llamada) cuando coincide con un nuevo elemento y otra función (devolución de llamada) para cuando un elemento es sin ya emparejado
Por ejemplo:
$('#someRegion a').livequery(function(){
do_something();
});
actualización: Dado que los cambios DOM no se están ejecutando a través de jQuery, desafortunadamente livequery no los ve. Reflexioné sobre este tema antes y consideré una solución basada en encuestas en
this answer.
Actualización: El sondeo es feo, pero si realmente no hay otra alternativa, aquí hay una solución basada en encuestas que utiliza una manipulación "ficticia" de jQuery para hacer que la consulta en vivo "vea" el cambio. Solo querrá considerar algo como esto como último recurso, si no hay otra opción para vincularse con un método de devolución de llamada.
primer lugar, configure livequery viendo el contenedor donde se producirán las actualizaciones:
$('div#container').livequery(function(){
$(this).css('color','red'); // do something
});
y luego usar setInterval()
, aquí envuelto en una función de confort:
function pollUpdate($el, freq){
setInterval(function(){
$el.toggleClass('dummy');
}, freq);
};
para que pueda tener:
$(document).ready(function(){
pollUpdate($('div#container'), 500);
});
Aquí hay un working example.Haga clic en el botón para agregar nuevos elementos de DOM sin jQuery, y verá que son recogidos (eventualmente) y rediseñados por livequery. No es bonito, pero funciona.
Updatepanel no desencadena ningún evento u ofrece devoluciones de llamada que puede enganchar? – Magnar