我正在使用requireJs加载jQuery和init
模块。 init
依赖于pageElements
。可以从main.js正确访问所有三个负载。
我的问题在init.js中。我希望函数page.attachBehaviours
访问函数page.someFunction
。该行为附加到button元素,但是单击按钮时出现错误:
this.someFunction()不是函数。
// main.js:
require.config({
paths: {
'jQuery': 'vendor/jquery-3.3.1.min'
},
shim: {
'jQuery': {
exports: '$'
}
}
});
require(["jQuery", "./app/init"], function($, init ) {
$(document).ready(function() {
init.page.attachBehaviours();
});
});
// init.js:
define(['./pageElements'], function (pageElements) {
return {
page:{
attachBehaviours: function() {
$(pageElements.toolBoxButton).on('click', function (event) {
this.someFunction(); //error this.someFunction is not a function
});
},
someFunction: function () { // the function I want to call from toolBoxButton on click event
console.log("function called");
}
}
};
});
为了完整起见,还包含了pageElements
define([], function () {
return {
toolBoxButton: '#toolBoxButton'
};
});