我创建了一个 requireJs 模块,其中已经放置了所有函数:
define(['Scrollbar','module'],function(Scrollbar,module){
return{
init:function(){
//CODE
},
manageScroll:function(){
//CODE
},
manageResize:function(){
//CODE
},
transform(){
//CODE
}
}
});
在 init 部分中,我在调整大小时定义了一个处理程序 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()
的返回值。除非您返回回调,否则这是行不通的。
在您的第二次尝试中,您使用的是箭头函数,但在 IE 中不起作用,而任何 IE 浏览器都不支持该函数。
关于javascript - Jquery 处理函数 + requireJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202494/