每次通话仅运行一次功能

时间:2013-06-13 14:56:12

标签: jquery

我正在编写一个订阅脚本,我正在调用函数“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”打印两次警报

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{
              ...
        }
    }); 
}

1 个答案:

答案 0 :(得分:3)

创建一个像called = false;这样的变量,让你的函数检查它是否在开头被调用,如

function foo() {
    if (called) {
        return;
    } else {
        called = true;
    }
    //do stuff....
}