Nota del autor (pie6k). Creé esta biblioteca hace unos años y era agradable en ese entonces. Ahora probablemente no deberías usar jQuery para cosas como esa y optar por React o algo similar. Gracias. — 2018-11-21
Aún se aceptan informes de errores.
El complemento jQuery.initialize
se crea para ayudar a mantener los elementos creados dinámicamente en la página.
jQuery.initialize iterará sobre cada elemento que coincida con el selector y aplicará la función de devolución de llamada. Luego escuchará cualquier cambio en el modelo de objetos de documento y aplicará la función de devolución de llamada a cualquier elemento nuevo insertado en el documento que coincida con el selector original.
$.initialize([selector], [callback]);
Esto permite a los desarrolladores definir una devolución de llamada de inicialización que se aplica cada vez que se inserta en el DOM un nuevo elemento que coincida con el selector. También funciona para elementos cargados a través de AJAX.
Demostración sencilla: haga clic aquí
$.initialize(".some-element", function() {
$(this).css("color", "blue");
});
Pero ahora, si aparece en la página un nuevo elemento que coincida con el selector .some-element
, se inicializará instantáneamente. La forma en que se agrega el nuevo elemento no es importante, no necesita preocuparse por las devoluciones de llamada, etc.
$("<div/>").addClass("some-element").appendTo("body"); //new element will have blue color!
Para dejar de observar el documento, puede desconectar al observador llamando disconnect()
en la instancia de MutationObserver
devuelta, lo que impide que reciba más notificaciones hasta que se vuelva a llamar observe()
. . P.ej,
var obs = $.initialize([selector], [callback]); // Returns MutationObserver
obs.disconnect();
target
De forma predeterminada, se observa todo el documento en busca de cambios. Esto puede resultar en un rendimiento deficiente. Se puede observar un nodo específico en el DOM especificando un objetivo:
$.initialize(".some-element", function() {
$(this).css("color", "blue");
}, { target: document.getElementById('observe-this-element') });
De lo contrario, el destino será por defecto document.documentElement
.
observer
Se puede proporcionar un MutationObserverInit
personalizado. Si no se proporciona, la configuración predeterminada será interna.
El complemento está basado en MutationObserver
. Funcionará en IE9+ ( lea la nota a continuación ) y en todos los navegadores modernos.
Nota: Para que funcione en IE9 e IE10 necesitarás agregar el polyfill de MutationObserver, como los que se encuentran aquí: https://github.com/webcomponents/webcomponentsjs
Prueba de rendimiento (gracias a @bezborodow y @liuhongbo )
bower
y npm
, agregue una prueba de rendimiento avanzada.