javascript - Jquery 处理函数 + requireJs

标签 javascript jquery requirejs

我创建了一个 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/

相关文章:

Javascript(或其他一些语言)无需使用 pageYOffset 即可检测车轮方向

javascript - 如何获取条件(If/Else)来检查按钮是否被单击?

javascript - 在 div 组中切换单个 div 的高度

javascript - 使用 grunt 在前端应用程序上构建生产/开发环境

c# - MVC 应用程序中的 Require.js

javascript - 使用 requireJS 异步插件和 requireJS jsonp 格式有区别吗

javascript - 使用两个 for 循环来比较两个字符串

javascript - 可以在react/javascript中使用google语音发送文本api

PHP jQuery Chat - 用户正在输入功能

javascript - 为什么当我在循环中添加一堆事件监听器时,每个元素都会触发最后添加的监听器?