如何在另一个Ajax调用之后运行ajax调用?
问题描述:
这是我遇到的问题。用户可以登录,但如果他们不刷新页面,他们将无法登出。那么我该如何调用另一个Ajax调用?如何在另一个Ajax调用之后运行ajax调用?
的注销链接是由拳头Ajax调用加载,会是什么问题?
下面是在日志中jQuery代码:
$(".bt_login").click(function(){
$.ajax({
type: 'POST',
url: 'widgets/Login/loginProcess.php',
data: dataString,
success: function(data){
if(data == 'error'){
alert('Wrong username and/or password!');
}else{
$('#loginForm').html(data);
$('#greet').html('Hello '+username+'!').fadeIn();
$('#open').html('Open Panel');
}
}
});
});
这里是注销jQuery代码:
$('.bt_logout').click(function(){
var dataString = 'process=logout';
$.ajax({
type: 'POST',
url: 'widgets/Login/loginProcess.php',
data: dataString,
success: function(data){
$('#loginForm').hide().html(data).fadeIn();
$('#greet').html('Hello Guest!');
$('#open').html('Log In | Register');
}
});
});
答
在这种情况下:
$(".bt_login").click(function(){
$.ajax({
type: 'POST',
url: 'widgets/Login/loginProcess.php',
data: dataString,
success: function(data){
if(data == 'error'){
alert('Wrong username and/or password!');
}else{
$('#loginForm').html(data);
$('#greet').html('Hello '+username+'!').fadeIn();
$('#open').html('Open Panel');
// because .bt_logout only exists after this point:
$('.bt_logout').click(function(){
var dataString = 'process=logout';
$.ajax({
type: 'POST',
url: 'widgets/Login/loginProcess.php',
data: dataString,
success: function(data){
$('#loginForm').hide().html(data).fadeIn();
$('#greet').html('Hello Guest!');
$('#open').html('Log In | Register');
}
});
});
}
}
});
});
答
你只需要运行第二代码片段,一旦注销链接已被写入以约束事件。这与连续的Ajax调用无关,而是与在第一个调用的成功方法中添加链接然后不绑定其单击事件有关。
答
如果你想打个电话之后另一个,把代码调用你的第一个电话的“成功”函数内部的第二个电话。
可选地,确保注销链路总是在DOM,但最初设置为显示:无。然后,您可以像现在这样,将点击事件绑定到登录和注销。只需添加一行登录/ ajax /成功show()注销链接。 – Cheekysoft 2010-01-03 16:01:32