我有这个调用ajax,为了成功我从php打印另一个按钮它有另一个调用ajax。如何使用方法.on没有在.on?
之后再插入整个调用ajaxAJAX
$('.send_request').click(function(){ // send request ajax
var id_user_receive = $(this).attr('id');
var button = $(this);
$.ajax({
url: CI_ROOT + 'friendship_ctr/send_request',
type: "POST",
data: "id_user_receive=" + id_user_receive,
dataType: "html",
success: function(html) {
$('.button-option').html(html);
$('.remove_u').on('click',function(){
$('.remove_u').click(function(){ // i would like short this code
var id_user_receive = $(this).attr('id');
$.ajax({
url: CI_ROOT + 'friendship_ctr/remove_friend',
type: "POST",
data: "id_user_receive=" + id_user_receive,
dataType: "html",
success: function(html) {
},
error: function(status) {
alert(status);
}
});
});
},
error: function(status) {
alert(status);
}
});
});
});
答案 0 :(得分:0)
你可以创建一个泛型函数来对url进行ajax调用并传递一个处理函数,该函数在成功时执行:
makeAnAjaxCall = function (url, serialized_form_data, callback) {
$.ajax({
type: "POST",
dataType: "json",
url: CI_ROOT + url ,
data: serialized_form_data,
success: function(data) {
callback(data);
},
error: function(){
alert('Error on ajax call');
}
});
}
#Then just call twice like this:
$('body').on('click','.remove_u', function(){
return makeAnAjaxCall('friendship_ctr/remove_friend','id_user_receive='+ id_user_receive,handlerRemove(status));
})
$('body').on('click','.send_request', function(){
return makeAnAjaxCall('friendship_ctr/send_request'','id_user_receive='+ id_user_receive,handlerSendRequest(status));
})
我认为你没有说明.on是如何工作的,请查看你不需要在第一个ajax调用的成功函数内的按钮附加事件监听器的jquery文档,你可以将任何事件绑定到当时在DOM中不存在的元素,但可能会出现在你想要的ajax调用之后。