在jquery-boilerplate中实现window.resize函数的位置?

时间:2016-02-24 23:46:03

标签: javascript jquery plugins jquery-plugins jquery-boilerplate

我正在尝试将使用jquery插件模式编写的插件之一转换为jquery-boilerplate提供的插件。我的插件依赖于var found = myArray.join(',').indexOf('oranges') > -1; if (found) { // oranges was found } 函数来使其响应,但是当我尝试在 jquery-boilerplate 上使用它时,Web控制台在调整窗口浏览器大小时返回TypeError:

$( window ).resize()

Web控制台返回: function Plugin ( element, options ) { this.element = element; this.cfg = $.extend( true, defaults, options ); this._defauls = defaults; this._name = pluginName; this.init(); } // Avoid Plugin.prototype conflicts $.extend( Plugin.prototype, { init: function() { this.windowWidth(); $(window).resize(function(){ this.windowWidth(); }); }, windowWidth: function() { var w = $( window ).width(); console.log(w); } } );

我也试过这种方式:

TypeError: this.windowWidth is not a function

并且Web控制台返回: function Plugin ( element, options ) { this.element = element; this.cfg = $.extend( true, defaults, options ); this._defaults = defaults; this._name = pluginName; this.init(); $(window).resize(function(){ this.init(); }); } // Avoid Plugin.prototype conflicts $.extend( Plugin.prototype, { init: function() { this.windowWidth(); }, windowWidth: function() { var w = $( window ).width(); console.log(w); } } );

根据jquery-boilerplate,我必须在哪里放置必须侦听jquery resize方法的代码?

我基本上以这种方式工作:

TypeError: this.init is not a function

但这不是 jquery-boilerplate 团队的目的,那么在使用jquery-boilerplate插件模式时如何才能这样做呢?

1 个答案:

答案 0 :(得分:0)

此错误与jquery-boilerplate无关。 在编写任何插件之前,你绝对应该在Javascript中了解更多关于“this”关键字的信息。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/this