0

私はサブスクライブスクリプトに取り組んでおり、関数「onclick」を次の方法<a onclick="subscribe_guest(434)" >subscribe</a>で呼び出しています。別の「サブスクライブ」リンクを複数回クリックすると、$('#MyWatch').submit(function(){呼び出した回数だけ実行されるよりも問題が発生します関数subscribe_guest(id)

たとえば、私は何度もクリックし <a onclick="subscribe_guest(434)" >subscribe</a> ました <a onclick="subscribe_guest(14)" >subscribe</a>

次のコードは、ID '14' のアラートを 2 回出力します。

function subscribe_guest(id){
        $('#MyWatch-Wrap').html('');
                $(".wrappermywatch-guest").css({
                    top:$(window).scrollTop() +50,
                }).show();

    $('#MyWatch').submit(function(){
        alert(id);
        if(typeof email !== "undefined"){
            if(validateEmail(email)){
                            $.ajax({   
                                 ...
                                }   
                            });   
                            return false;  
            }else{
                                ...
            }
        }else{
              ...
        }
    }); 
}
4

1 に答える 1

3

のような変数を作成called = false;し、関数をチェックして、最初に呼び出されたかどうかを確認します

function foo() {
    if (called) {
        return;
    } else {
        called = true;
    }
    //do stuff....
}
于 2013-06-13T15:01:49.540 に答える