Pregunta

Sé que live() se puede utilizar para los controladores de eventos de apoyo para las actuales y "añadido más tarde" elementos DOM.

Me pregunto cómo hacer lo mismo con each()?

Al igual que si he $('.something_or_other').each() pero entonces otro elemento DOM con class="something_or_other" se agrega? ¿Cómo puedo configurarlo para aplicar automáticamente el cada iteración de este nuevo elemento DOM?

O, ¿qué puedo llamar después de añadir el nuevo elemento DOM para volver a aplicar las reglas each().

(mostrando mi edad un poco aquí, sino en el comportamiento podemos utilizar Behaviour.apply() Para volver a aplicar todas las reglas!)

¿Fue útil?

Solución

@meder se ha señalado, que realmente debería simplemente hacer esto manualmente. Se puede utilizar la misma función para ambos si te gusta.

function myFunction(i,val) {
    $(this).doSomething;
}

$('someSelector').each( myFunction );

$.ajax({
    url:'/some/path/',
    success: function( data ) {
        $(data).find('someSelector').each( myFunction )
               .end().appendTo('body');
    }
});

Si realmente no quiere hacer eso, hay un plugin llamado livequery que se ejecutará código cuando se añade un elemento que coincide con un selector en (o se elimina de) el DOM.

Cuesta un poco de sobrecarga adicional, pero es una opción.

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

Otros consejos

¿Por qué no acaba unen la funcionalidad para la devolución de llamada Ajax que añade los elementos DOM al doctor? Parece que la ruta más corta y más lógico para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top