Tengo el siguiente código de complemento de jQuery para hacer algo en la carga o el desplazamiento de la ventana:
Nota: Simplifiqué el código para el ejemplo.
;(function ($, window, document, undefined) { 'use strict'; $.scrollFn = function (el, options) { var base = this; // jQuery and DOM of element base.$el = $(el); base.el = el; // Cached base.$win = $(window); base.$doc = $(document); // Initialize base.init = function () { base.options = $.extend({}, $.scrollFn.defaultOptions, options); }; // Scroll handler base.scrollHandler = function () { console.log('scrolled or loaded'); console.log(base.options.exampleOption); }; // On scroll and load base.$win.on('scroll load', base.scrollHandler); }; $.scrollFn.defaultOptions = { exampleOption: "Test" }; $.fn.scrollFn = function (options) { return this.each(function () { (new $.scrollFn(this, options)); }); }; })(jQuery, window, document);Y en otro JS estoy inicializando la función de desplazamiento:
$(document).ready(function() { $('.example').scrollFn({ exampleOption: "Hello world" }); }); El problema: Recoge el desplazamiento de la ventana pero no se carga. Cuando se carga la ventana, no veo que la consola regrese scrolled or loaded . Solo se muestra cuando me desplazo.
¿Cómo puedo hacer que la carga funcione también?
Lo intenté (dentro de scrollFn):
$(window).on('scroll load', base.scrollHandler); base.$doc.on('scroll load', base.scrollHandler); $(document).ready(function() { base.$win.on('scroll load', base.scrollHandler); });No funcionan.
Simplemente tuve que agregar base.scrollHandler en la función de inicio. Excepto cualquier otra respuesta que proporcione más información o una mejor solución si es posible.