簡體   English   中英

函數執行了三次

[英]Function executed three times

$('[name="properties_box"]').change(function() {
    if(this.checked) {

        console.log(properties.length - 1);

        for (var i = 0; i < (properties.length - 1); i++) {

            (function(index) {
                console.log('iterator: ' + index);
                //do ajax here
            })(i);

        }

    }
});

它應該只記錄0-7。 但是它這樣做了三遍。

7 main.js?ver=20130905:732
iterator: 0 main.js?ver=20130905:737
iterator: 1 main.js?ver=20130905:737
iterator: 2 main.js?ver=20130905:737
iterator: 3 main.js?ver=20130905:737
iterator: 4 main.js?ver=20130905:737
iterator: 5 main.js?ver=20130905:737
iterator: 6 main.js?ver=20130905:737
7 main.js?ver=20130905:732
iterator: 0 main.js?ver=20130905:737
iterator: 1 main.js?ver=20130905:737
iterator: 2 main.js?ver=20130905:737
iterator: 3 main.js?ver=20130905:737
iterator: 4 main.js?ver=20130905:737
iterator: 5 main.js?ver=20130905:737
iterator: 6 main.js?ver=20130905:737
7 main.js?ver=20130905:732
iterator: 0 main.js?ver=20130905:737
iterator: 1 main.js?ver=20130905:737
iterator: 2 main.js?ver=20130905:737
iterator: 3 main.js?ver=20130905:737
iterator: 4 main.js?ver=20130905:737
iterator: 5 main.js?ver=20130905:737
iterator: 6 

有人可以解釋為什么以及如何解決它嗎? 我將在其中進行一些AJAX調用,因此重要的是它的運行不會超出需要。

我認為綁定更改三次的問題,請參閱發布的評論,我建議將其作為答案

$('[name="properties_box"]').unbind()

在bind事件調用之前,請使用上面的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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