我在图像上有一个锚标记,用jQuery提取菜单。一旦用户点击图像,拉出菜单的功能就会从图像中解除绑定(因此他们不能多次点击它并弄乱所有内容的配置)。我正在使用AJAX在页面上提交表单,我希望函数只有在成功调用Ajax之后才能绑定回映像。
我已经看过其他类似的问题,但我并不清楚它与我的确切方式有何关系。这是我的jQuery代码。我没有把所有的代码都放进去,但我们假设AJAX调用是成功的(在代码的这一点上):
$('.modify_alert').click(function(){
$('.modify_alert').unbind('click');
$('.modify_alert').addClass('submit_upgrade');
//A BUNCH OF CODE HERE
//AJAX CALL FOR MODIFY ALERT
$('.modify_check').click(function(e){
e.preventDefault();
//post variables
//MORE CODE HERE
$.ajax({
type: 'POST', // HTTP method POST or GET
url: 'ajax.php', //Where to make Ajax calls
dataType:'text', // Data type, HTML, json etc.
data:myData, //post variables
success:function(response){
//REFORMAT UPON SUCCESSFUL AJAX CALL (REMOVED CODE FOR SIMPLICITY)
//TRYING TO REBIND THE FUNCTION HERE
$('.modify_alert').bind('click');
},
error:function (xhr, ajaxOptions, thrownError){
alert('didn\'t work'); //throw any errors
}
});
});
我想我可以在解除绑定后将点击操作绑定回.modify_alert锚标记。我猜我不能那样做?谢谢你的帮助。我是AJAX的新手,我只想弄清楚如何将它们整合在一起。谢谢你的帮助!
答案 0 :(得分:2)
绑定或解除绑定处理程序时,应指定处理程序:
$('.modify_alert').click(function mdfclick(){
$('.modify_alert').unbind('click', mdfclick);
$('.modify_alert').addClass('submit_upgrade');
//A BUNCH OF CODE HERE
//AJAX CALL FOR MODIFY ALERT
$('.modify_check').click(function (e){
e.preventDefault();
//post variables
//MORE CODE HERE
$.ajax({
type: 'POST', // HTTP method POST or GET
url: 'ajax.php', //Where to make Ajax calls
dataType:'text', // Data type, HTML, json etc.
data:myData, //post variables
success:function(response){
//REFORMAT UPON SUCCESSFUL AJAX CALL (REMOVED CODE FOR SIMPLICITY)
//TRYING TO REBIND THE FUNCTION HERE
$('.modify_alert').bind('click', mdfclick);
},
error:function (xhr, ajaxOptions, thrownError){
alert('didn\'t work'); //throw any errors
}
});
});