我想在另一个js文件中访问与modal相关的方法。所以我创建了一个名为app的全局对象,并创建了如下所示的方法:
//global variables
app = {};
//modal components
app.modal = function ( ele ) {
return {
"closeModal": function() {
$('.modal.fade').removeClass("in");
$(".browser .overlay").removeClass("show");
}
}
}();
然后,为了访问closeModal方法,我基本上在* .js文件中调用app.modal.closeModal()
。但是我收到以下错误消息:
Exception in setTimeout callback: TypeError: app.modal.closeModal is not a function
我一直盯着这一段时间,但似乎无法看出问题出在哪里。我敢打赌,我正在做一些非常愚蠢的事情。
感谢您的帮助。
答案 0 :(得分:1)
app.modal
被定义为一个函数,而不是一个对象,所以你必须写app.modal().closeModal()
。
但你应该将modal定义为这样的对象:
app = {
modal: {
closeModal: function(){
// whatever
}
}
};
答案 1 :(得分:0)
正如saimeunt所说,你可能想要使用类似的东西:
app = {};
app.modal = {
closeModal: function() {
$('.modal.fade').removeClass("in");
$(".browser .overlay").removeClass("show");
}
};
此外,您需要将此文件(包含#closeModal
)放在将在加载调用它的文件之前加载的位置。这假设您自动调用它(看起来您来自setTimeout())。
有关加载订单的详细信息,请参阅答案:https://stackoverflow.com/a/10741082/4044373。