[英]How to make function execute only once in JS / JQuery
我有這樣的結構:
// 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 wannabe,所以當我想更改頁面時,它必須在App.js
執行某些功能,但是我的問題是,當我調用APP.viewIndex()
(when i go to Index, go back, and go to index again(without refreshing page) )
, EVT -> doSomething()
函數執行兩次,所以我不知道如何防止它,
在我的控制台中,我得到了:
已點擊
已點擊
*對不起,如果我的解釋有點復雜
希望你們能幫助我解決這個問題:D
謝謝
使用一個屬性來記住您是否已經調用過deleteField()
。
var EVT = {
didSomething: false,
doSomething: function(){
if (!this.didSomething) {
deleteField();
this.didSomething = true;
}
function deleteField(){
$("body").on("click", "#btn", function(){
console.log("Clicked");
})
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.