Jquery 处理函数 + requireJs
Jquery Handler Function + requireJs
我创建了一个 requireJs 模块,我已经在其中放置了所有函数:
define(['Scrollbar','module'],function(Scrollbar,module){
return{
init:function(){
//CODE
},
manageScroll:function(){
//CODE
},
manageResize:function(){
//CODE
},
transform(){
//CODE
}
}
});
在初始化部分,我定义了一个处理程序 Jquery 调整大小,它调用这个对象的函数
我是这样尝试的:
init:function(){
this.transform();
jQuery(window).resize(this.manageResize());
},
但它不起作用,我找到的唯一解决方案是下面的这个,但它在 IE 上不起作用。
init:function(){
this.transform();
jQuery(window).resize(()=>this.manageResize());
},
您有什么建议或更好的解决方案吗?
谢谢
您需要将回调传递给 jQuery(window).resize()
。像这样:
init:function(){
this.transform();
jQuery(window).resize(this.manageResize.bind(this));
},
我们需要使用 .bind(this)
否则 this
将在 manageResize
方法中具有值 undefined
。 (有关其工作原理的详细信息,请参阅 Function.prototype.bind
。)
在第一次尝试中,您传递了 this.manageResize()
的 return 值 。除非您正在 return 回调,否则这将无法工作。
在您的第二次尝试中,在 IE 中不起作用,您使用的是箭头函数,任何 IE 浏览器都不支持它。
我创建了一个 requireJs 模块,我已经在其中放置了所有函数:
define(['Scrollbar','module'],function(Scrollbar,module){
return{
init:function(){
//CODE
},
manageScroll:function(){
//CODE
},
manageResize:function(){
//CODE
},
transform(){
//CODE
}
}
});
在初始化部分,我定义了一个处理程序 Jquery 调整大小,它调用这个对象的函数
我是这样尝试的:
init:function(){
this.transform();
jQuery(window).resize(this.manageResize());
},
但它不起作用,我找到的唯一解决方案是下面的这个,但它在 IE 上不起作用。
init:function(){
this.transform();
jQuery(window).resize(()=>this.manageResize());
},
您有什么建议或更好的解决方案吗?
谢谢
您需要将回调传递给 jQuery(window).resize()
。像这样:
init:function(){
this.transform();
jQuery(window).resize(this.manageResize.bind(this));
},
我们需要使用 .bind(this)
否则 this
将在 manageResize
方法中具有值 undefined
。 (有关其工作原理的详细信息,请参阅 Function.prototype.bind
。)
在第一次尝试中,您传递了 this.manageResize()
的 return 值 。除非您正在 return 回调,否则这将无法工作。
在您的第二次尝试中,在 IE 中不起作用,您使用的是箭头函数,任何 IE 浏览器都不支持它。