簡體   English   中英

如何使函數在JS / JQuery中僅執行一次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM