.on方法调用ajax

时间:2013-08-25 00:51:20

标签: jquery ajax

我有这个调用ajax,为了成功我从php打印另一个按钮它有另一个调用ajax。如何使用方法.on没有在.on?

之后再插入整个调用ajax

AJAX

$('.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);
              }
          });  
        });

    });

1 个答案:

答案 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调用之后。