我尝试使用 RequireJS 和 AMD 模块定义,并编写了一个模块,以我认为的对象格式完成我的工作。(我从 jquery 去了,并没有很好地学习 OOP javascript)
我的模块.js
define([
jquery,
datepicker,
], function ($, datepicker) {
var myModule = {
debug: true,
lang: 'auto',
initModule: function (element) {
myModule.element = element;
},
// ... other methods
}
return myModule;
});
它运行良好,但如果我尝试将它用于多个元素/时间,它会覆盖他自己,并且我不能在同一页面中使用它超过一次。
main.js
requirejs(['MyModule'],
function (MyModule) {
// all the elements on page
$elements = $('.element');
$elements.each(function () {
MyModule.initModule($(this));
});
});
当我在页面上有不止一个<div class="element">
时,只有最后一个工作,我想是因为我的模块是自己覆盖他的。
我尝试添加new MyModule()
但有错误TypeError: MyModule is not a constructor
我想我需要添加一个构造函数或其他东西,无论如何都要使用我的模块实例而不是对象(我认为它由 requirejs 预编译并返回准备工作)。任何帮助都是好的,非常感谢提前!