2010-01-25 6 views
0

자바 스크립트가 아약스 요청을 통해 생성 된 요소에 적용될 수 있습니까? 사실 나는 더 많은 레벨의학과를 가진 부모와 아이들 같은 요소의 나무를 가지고 있습니다.자바 스크립트에 아약스가 생성 된 요소

내가 색인 페이지의 루트 요소가 클릭에 난 아이들이 요청 물마루 PIN이 할 수

var get_children = function() { 
pid = $(this).attr("id"); 
//var parentid = pid 
    // store value in data variable 
    var data = { par: pid }; 
    $.getJSON("/holz/children/",data, 
     function(data){ 
     //remove the box if it already exists 
     $("#parid-" + pid).remove(); 
      // Add the messages div to the container 
      $("#container").append("<div class='box' id='parid-" + pid + "'></div>"); 
      //create the id set for the box 
      boxid = "#parid-"+pid 
      //insert the elements one after each other with the id set to the elements pk 
      $.each(data, function(i,item){ 
       $(boxid).append('<p><a '+'id="'+item.pk+'"'+' class="element" href="#">'+item.fields.title +' (id = '+ item.pk+')'+'</a>'+'</p>'); 
      }); 
     } 
    ); 
    return false; 
}; 

문제는 요청이 내가 가진 요소에 적용 doenst 때문에 내가 더 깊게 질수 있다는 것입니다 첫 번째 요청에서 ajax 요청은 django 뷰를 호출하고 (그리고 첫 번째 요소에서 수행해야 함) json 응답을 반환합니다.이 json 응답은 자식과 함께 상자를 만드는 데 사용됩니다.

무엇이 잘못 되었나요?

들으 아니가, 자바 스크립트는 항상 DOM의 모든 유효한 요소에 적용

답변

1

나는 완전히 이해할 수 있을지 모르지만, onclick 이벤트 핸들러가 특정 CSS 클래스 .element을 가진 모든 domelements에 적용되는 것처럼 들린다. 내가 맞습니까?

그렇다면 use jQuery's live() event binder 구문입니다. 이렇게하면 현재와 미래에 주어진 선택자와 일치하는 모든 dom 요소에 이벤트를 바인딩 할 수 있습니다.

를 예로 들어 자신의 코드 중 일부를 사용하려면

$('div.box').live('click', function() { 
    alert('you clicked me!'); 
}); 

$("#container").append("<div class='box' id='parid-" + 1 + "'></div>"); 

을 우리는 우리가 그것을 삽입 JQuery와 API를 사용하기 때문에 우리의 클릭 이벤트가 바인딩해야합니다 동적으로 추가 된 div 위의 예에서.

+0

동적으로 추가 된 합의 된 요소는 와이어 업 코드가 이미 실행 되었기 때문에 와이어 링되지 않으므로 추가 된 요소도 유선으로 연결되도록 라이브를 사용해야합니다. –

+0

thx 얘들 아 ... 이거 효과가있어. – aschmid00

0

는 상관없이이 온없는 경우.

아직 코드에서 이해할 수 없지만 AJAX 호출이 문서에 이미있는 ID로 요소를 주입하고 있습니까? 해당 내용을 처리 할 때 해당이 문제를 일으킬 수 있습니다.

+0

당신은 새로 도착한 자식 요소에 그들이들을 수있는 onclick 이벤트를 제공하지 않습니다. –

+0

링크를 클릭 할 수있게 만드는 기능을 다시 적용해야합니다. 현재 AJAX 호출에서 얻은 것은 의도적으로 첨부 된 액션없이 죽은 링크 일뿐입니다. –

관련 문제