2013-07-31 3 views
0

live 메서드를 사용하려고하고 처음에는 의도 한대로 작동하지만 ajax 'success'콜백은 이후의 함수 실행시 제대로 작동하지 않습니다..html live() Jquery와 함께 작동하지 않습니다

$(function() { 
    $('.vote').live('click', function() { 
     url = '".base_url()."post/vote'; 
     post_id = $(this).attr('id'); 

     $.ajax({ 
      url: url, 
      type: 'POST', 
      data: 'post_id=' + post_id, 
      success: function (msg) { 
       post = $('.num_vote' + post_id); 
       vote = $('.votes' + post_id); 
       $(vote).html(msg); // working only the first time 
      } 
     }); 
     return false; 
    }); 
}); 
+0

자바 스크립트 파일에서 PHP를 사용하고 있습니까? – putvande

+2

jQuery 1.7부터 .live() 메소드는 더 이상 사용되지 않습니다. – orhanhenrik

+0

'$ (vote) .html (msg)'에 투표의 변수 또는 오타가 있습니까? –

답변

0

은 사용하는 jQuery를 버전에 따라 1.7에서 사용되지 않는 1.9에서 제거 .live().on 기능을 사용해야 할 수도 있습니다.

$(function(){ 
    $('.vote').on('click', function() { 
      url = '".base_url()."post/vote'; 
      post_id = $(this).attr('id'); 
      $.ajax({ 
        url: url, 
        type: 'POST', 
        data: 'post_id=' + post_id, 
        success: function(msg) {        
         post = $('.num_vote' + post_id); 
         vote = $('.votes' + post_id); 
          $(vote).html(msg); // working only the first time 

        } 
      }); 
      return false; 
    }); 
}); 
+0

함수가 전혀 작동하지 않으면 OP가'live'를 사용했기 때문에 오류가 발생하지 않습니다. 이 메소드는 존재하거나 존재하지 않으며, 존재한다면 OP는 이전 jQuery 버전을 사용하고있다. 또한,이''on' (http://api.jquery.com/on) 사용법은 다이렉트 이벤트 핸들링을위한 것이며,''라이브 ''에 의해 수행되는 위임 된 이벤트 핸들링과 동일하지 않습니다. 문서에 표시된 것처럼 위임 된 이벤트를 처리하려면 처리기를 부모 요소에 바인딩해야합니다. – nbrooks

관련 문제