2010-02-27 6 views
1

사용자가 다른 사용자의 게시물에 의견을 게시 할 수있는 간단한 설명 섹션이 있습니다. 사용자가 벽면에 무언가를 쓸 수있는 페이스 북 벽의 스타일과 다른 사람이 그것에 대해 의견을 말할 수 있습니다.Jquery - 이벤트가 새로 생성 된 요소에서 작동하지 않습니다.

그래서 사용자가 무엇이든 입력하고 제출할 때이 양식이 있습니다.이 정보는 데이터베이스에 삽입되고 Jquery를 사용하여 양식 아래의 동일한 페이지에 표시됩니다.

이제 각 게시물에 옆에 의견 링크가 있습니다. 따라서 누군가가 댓글 링크를 클릭하면 사용자가 무언가를 입력하고 제출할 수있는 작은 텍스트 영역 상자가 나타납니다.

새로 만든 요소의 덧글 링크가 텍스트 상자 영역을 열지 않는다는 점을 제외하면 모든 항목이 이전에 게시 된 항목에서 훌륭하게 작동합니다.

검색 후 나는 내가 구현 한 Livequery 플러그인을 발견했다. 그러나 그것은 나에게 효과가있는 것 같지 않다. 내가 잘못한 것처럼 보인다.


    $(".comment_button").click(function(){       
       var element = $(this); 
       var I = element.attr("id"); 
       //alert("in="+I);; 
       $("#slidepanel"+I).slideToggle(300); 
       $(this).toggleClass("active"); 
       return false; 
      }); 

나는이 livequery 사용하도록 변경 :

내가 이전에했던 코드입니다


    $('.comment_button').livequery('click',function(event) {     
       var element = $(this); 
       var I = element.attr("id"); 
       //alert("in="+I);; 
       $("#slidepanel"+I).slideToggle(300); 
       $(this).toggleClass("active"); 
       return false; 
      }); 

이 코멘트에 대한 링크가를위한

<a id="<?php echo $data['shopping_id']?>" class="comment_button" href="<?php echo $data['shopping_id']?>">Comment</a> 

주셔서 감사합니다 팁

답변

2

livequery, 단지 live이 필요하지 않습니다. livequerylive으로 바꾸십시오. 정상적으로 작동합니다.

+0

감사합니다. Skilldrick - 실제 시도했는데 아무것도하지 않습니다. 이벤트가 호출되고 있습니다. 경고가 표시되어 올바른 ID를 표시하지만 $ ("# slidepanel"+ I) .slideToggle 300); 작동하지 않는 것 같습니다 감사합니다 – Gublooo

+1

표시되는 ID는 무엇입니까? 나는 문제가'$ ("slidepanel"+ I)'에 있을지도 모른다고 생각한다. – Skilldrick

+0

표시되는 ID는 게시 된 마지막 코멘트의 ID입니다. 슬라이드 패널 코드는 작동하기 때문에 문제가 없습니다. 페이지를 새로 고침하고 이전 게시물의 "댓글"링크를 클릭하면 작동합니다. 새로 만든 요소에만 작동하지 않습니다. 슬라이드 패널을 리바 인 딩해야합니까 – Gublooo

관련 문제