2013-08-25 4 views
0

У меня есть этот вызов ajax, для успеха Я печатаю еще одну кнопку с php, у нее есть другой вызов ajax. Как это сделать для использования метода .on без вставки всего вызова ajax снова после .on?.on метод по вызову 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); 
       } 
      }); 
     }); 

    }); 

ответ

0

Вы можете сделать обобщенную функцию, чтобы сделать вызов Ajax к URL и передать его функцию обработчика, что функция выполняется на успех:

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)); 
    }) 

Я думаю, что вы не Если вы работаете, пожалуйста, взгляните на документацию jquery, которую НЕ ДОЛЖНО добавить приложение-слушатель к кнопке внутри функции успеха первого вызова ajax, вы можете привязать любое событие к элементам, которые в то время не существует в DOM, но, вероятно, появится после aja x вызов, как тот, который вы хотите сделать.

+0

спасибо! Теперь я понял. Спасибо! – fabrizio

+0

рад помочь вам, вы можете проголосовать за ответ? Надеюсь, что это поможет кому-то еще искать ту же проблему – sandino

Смежные вопросы