2012-10-23 2 views
0

나는 약간의 문제가 받고 있어요 내가 꽤 혼란 스러워요 보이는자바 스크립트 replaceWith + CLASSID

코드 ..에 대한 : 지금

$(".post-click").click(function() 
{ 
    var classid = $(this).attr('id'); 
    var postid = $(this).attr('id'); 
    postid = postid.replace('post-click-id_', ''); 

    alert("ID: " + classid + " PostID: " + postid); 

    $(this).replaceWith('<img SRC="assets/img/refresh.gif" ALT="" id="' + classid + '">'); 

    $.post("likepost.php", { postid: postid } , function(data) 
    { 
     $(document).foundationTooltips(); 

     alert(data); 
      $("#" + classid).replaceWith(data); 

      var classes = $("#" + classid).attr('class'); 

      alert(classes); 
    }); 
}); 

이 그것을 무엇을, 때를 그것을 클릭하면 클릭 한 ID 텍스트가 대체됩니다. 클릭 후가 교체 후 더 이상 호출되지 않습니다 보인다

$(".post-click").click(function() 
{ 

: 자, 위에 나는이 있어요. 내가 그것을 좋은 수업으로 대체하기 위해서 나는 'var classes = ...'을 거기에 넣었다. 클래스 포스트 클릭이 대체에 있음을 경고합니다.

교체는 다음과 같습니다? 는 < 클래스 = "클릭 후"HREF는 = "#"> 테스트 </A> ";

jQuery를이 호출하지 않는 이유가 뭘까요 더 이상

을 포스트 - 클릭
+0

"대체 후 대체로 더 이상 전화를받지 않습니다." 다시 클릭 할 때 호출되지 않습니까? 전체 요소를'$ (this) .replaceWith (''); – st3inn

답변

2

replaceWith를 사용하여, 당신은 이벤트 바인딩으로 완료 DOM 요소를 대체하고있다. 다행히

, JQuery와 (새로운 컨텐츠 이벤트를 리 바인딩 통해 반복 반대)은 이벤트 위임을 사용할 수 있습니다 .on을 제공합니다.

클릭 한 후 부모 노드에 적용한 다음 인수에 클래스를 지정합니다.

다음이 어떻게 작동

$(".some-parent-elem").on("click", ".post-click", 
     function(){...do stuff on click...}); 

그것이 K2661에 부모 - ELEM에 클릭을 수신한다는 것입니다 (그 요소의 자식을 클릭하면 이벤트 버블 링에 의한 의미하는 것이다 그것은 화재)의 경우 원래의 대상 요소 클릭 한 클래스에는 클릭 후 클래스가 있으며 함수를 실행합니다.