我正在尝试将使用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插件模式时如何才能这样做呢?
答案 0 :(得分:0)
此错误与jquery-boilerplate无关。 在编写任何插件之前,你绝对应该在Javascript中了解更多关于“this”关键字的信息。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/this