我正在使用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的原因吗?
答案 0 :(得分:1)
在您的模块顶部(或您使用this.someFunction
的任何范围),放置:
var page = this;
...然后使用page.someFunction
而不是this.someFunction
。