我有这样的结构:
// App.js
var APP = {
viewIndex: function(){
EVT.doSomething();
},
// Another function below
}
// Event.js
var EVT = {
doSomething: function(){
deleteField();
function deleteField(){
$("body").on("click", "#btn", function(){
console.log("Clicked");
})
}
}
}
我的项目是SPA想要的,所以当我想要更改页面时,它必须在App.js
内执行一些功能,但我的问题是,当我拨打APP.viewIndex()
(when i go to Index, go back, and go to index again(without refreshing page) )
时, EVT -> doSomething()
内的函数执行两次,所以我不知道如何防止它,
在我的控制台中我得到了这个:
已点击
已点击
*对不起,如果我的解释有点复杂
希望你们能帮我解决这个问题:D
感谢
答案 0 :(得分:0)
使用属性记住您是否已拨打deleteField()
。
var EVT = {
didSomething: false,
doSomething: function(){
if (!this.didSomething) {
deleteField();
this.didSomething = true;
}
function deleteField(){
$("body").on("click", "#btn", function(){
console.log("Clicked");
})
}
}
}