기능

2012-04-06 4 views
0

은은 .js 스크립트를 전환하는 것이 링크 나 웹 페이지에서 다음 아약스 호출 ...기능

같은 페이지에서

var href=$('.poplight').attr("href"); 
    $('.poplight').attr("href","#"); 
    $('.poplight').click(function(){ 
     $.get(href, function(data) { 
       $("#popup-contents").html(data) 
        // inserts <div id="additionalInfo"> 
        // <legend id="legend-params">Legend</legend> 
        // <div id="toggle"> This should toggle </div> </div> 

      } 
     ); 
    }); 

</script> 

을 가지고, 거기 jQuery를 아약스 HTML 주입 한 후 작동하지 않습니다 범례가 클릭 될 때마다 #toggle div. 이 모든 것은 별도의 페이지에서 잘 작동하지만 (전설적인 토글만으로 가능), 아약스 호출로 작동시킬 수는 없습니다. 나는 jquery가 특정 doms에 "부착"할 때해야한다고 생각하고있다. jquery의 innerworkings에 대해 충분히 알지 못한다.

다음은 외부 스크립트입니다. 나는 onload로 시험해 보았고, HTML로 인라인으로 추가했다. 이러한 함수는 범례가 클릭 될 때 실행됩니다. (.show() 메소드 다음에 경고 ('test')를 삽입하면 경고 창이 표시됩니다).

$('#toggle').hide();            
$("#legend").toggle(
    function() { 
     $("#toggle").show("slide", {direction: "up"}, 200); 
    }, 
    function() { 
     $("#toggle").hide("slide", {direction: "up"}, 200); 
}); 

도움이 될 것입니다.

+1

대신 ** ['.on()'] (http://api.jquery.com/on/) **를 사용해보십시오. 이렇게하면 처리기는 즉시 작성되는 요소에 바인딩됩니다. 당신이 지금하고있는 방식은 DOM에 준비되어있는 요소들에만 동작을 바인딩 할 것입니다. – m90

+0

http://stackoverflow.com/questions/3796799/jquery-not-working-in-ajax-loaded-divs – OneThreeSeven

+0

빠른 응답을 주셔서 감사합니다 ... 그들에게 갈 것입니다. – loeschg

답변

0

위에 나열된 의견은 내가 문제를 해결하는 데 도움이되었습니다. (나는 그들이 SO의 "알고리즘"에 의한 의견으로 변환되었다고 생각합니다 ... 답변으로 표시했을 것입니다). 가 나는 본질적으로 변경 :..

$ ("# 전설") 전환 (...)

$ ("# 전설")에 (functionX()를 '클릭'...) functionX는 전역 변수가 true 또는 false 인 경우 몇 가지를 숨기는 매우 많은 영광스러운 if 문이었습니다. 어쩌면 가장 깨끗한 해결책은 아니지만 그 일을 해 냈습니다.