诸位大虾,小弟有一事不明,是登陆和注销的方法调用问题,会出现重复调用,我的代码如下:
$("#submitlogin").click(function(){
submitlogin();
return;
});
function submitlogin(){
var username = $("#username").val();
var password = $("#password").val();
var ca = $.ajax({
url:"../Func/main.php",
dataType:"JSON",
type:"POST",
data:{Request:4,username:username,password:password},
beforeSend: Loading(),
success: function(callback){
if(callback.Result=="LoginError"){
$("#loginresult").html("用户名或密码错误");
}
else if(callback.Result=="LoginOK"){
var imgsrc="../image/user/"+callback.UPNum;
$("#loginresult").html("");
$("#LoginBar").fadeOut(300);
$("#logreg_btn").hide(0,function(){
var tr='';
$("#logreg_OK>#UserIcon").attr("src",imgsrc).attr("title",callback.Username+"的头像").attr("alt",callback.Username+"的头像");
$("#logreg_OK>a:eq(1)").html(callback.Username);
$("#logreg_OK").fadeIn(300);
return;
});
$("#logout").click(function(){
$("#logreg_OK").css("display","none");
$("#logreg_btn").fadeIn(200,function(){
$("#logreg_OK>img").removeAttr("title");
$("#usernameurl").html("");
return;
});
});
}
return;
}
})
delete ca;
return false;
}点击一次之后,会弹出对话框来输入信息,验证正确后没有问题可以正常登陆,然后点注销,再输入用户名等等,这时候我发现js会重复向服务器发请求,意思就是说,我登陆过几次,就会发几次请求。
也就是我的函数在上一次调用后,就没有退出,内存还是驻留的,所以上一次的事件还是保留下来了。
再次登陆的时候,就会重复触发这个方法。我搞不明白,为什么会重复调用呢?我已经return了啊。怎么能叫我一个方法是用完后可以退出呢?或者说是用完后清空这个方法的内存占用?这个问题困扰了我很久,希望能得到一个答案,非常感谢javascriptfunction重复调用