在jQuery中RequireJS自引用?

时间:2014-02-23 15:49:07

标签: jquery scope requirejs

我正在使用RequireJS和jQuery。我有一个模块page,其中包含一个切换网站菜单可见性的功能。我通过调用模块外部的page.toggleMenu或模块内的this.toggleMenu来调用切换功能。

我遇到的问题是我是否可以在同一个模块中调用的jQuery函数中访问该模块,如下所示:

var someFunction = function() {
    $('.someelement').on('click',function() {
        this.toggleMenu();
    });
}

到目前为止,我一直无法做到这一点。它结果的this变量包含.someelement的DOM元素。我猜这是因为jQuery的范围只是DOM。但我不确定这里发生了什么。我还惊讶于this变量是对DOM元素的引用。我认为实现这一目标的唯一方法是做var this = $(this)

如果有人可以帮助我澄清这里发生了什么,以及我有什么(如果有的话)可能的解决方案,那将会非常有帮助。最后,这是人们可能使用MooTools而不是jQuery的原因吗?

1 个答案:

答案 0 :(得分:1)

在您的模块顶部(或您使用this.someFunction的任何范围),放置:

var page = this;

...然后使用page.someFunction而不是this.someFunction