Extendiendo la función $.fn.init
Estoy intentando extender jQuery con lo siguiente:
$.fn.extend({
initCore: $.fn.init,
init: function (selector, context, rootjQuery) {
return $.fn.initCore(selector, context, rootjQuery);
}
}),
Sin embargo, no parece funcionar correctamente y la creación de cosas simples, como una alerta al hacer clic, produce errores. ¿Alguien puede detectar el problema?
¡Gracias de antemano!
Aceptado
$.fn.init
es el propio constructor de clases.
Intente agregar $.fn.init.prototype = $.fn
epílogos para restaurar el prototipo original.
Supongo que te estás perdiendo el contexto. Intentar
return $.fn.initCore.call(this, selector, context, rootjQuery);
o incluso más fácil
return this.initCore(selector, context, rootjQuery);
No, espera, init
es el propio constructor. Eso significa
$.fn.initCore.call(this, selector, context, rootjQuery);
doSomeThingWith(this);
...
$.fn.init.prototype = $.fn;
o
var ob = new $.fn.initCore(selector, context, rootjQuery);
doSomeThingWith(ob);
return ob;