2010-08-17 2 views
0

MVC 애플리케이션에서 폴더보기를 얻으려고 JsTree를 작동 시키려고합니다. 페이지 뷰에서 기존 정적 HTML ul 목록을 사용하면 모든 것이 잘 작동합니다. 하지만 JsTree이 문서에 설명을 위해 내가 아약스 호출을 시도하고, 동적으로 UL 목록을 얻을 필요가 : 당신이 볼 수 있듯이, 나는 "는"모든 설정 클릭 이벤트를하려고MVC의 JsTree jQuery 플러그인에서 Ajax 호출

<script type="text/javascript"> 
     var url; 
     $(document).ready(function() { 
      $("a").click(function() { 
       url = "?url=" + $(this).attr("rel"); 
       alert(encodeURI(url)); 
      }); 
     }); 

     $(function() { 

      $("#demo2").jstree({ 
       "html_data": { 
        "ajax": { 
         "url": "/Home/Directories/" 
        } 
       }, 
       "ui": { 
        "select_limit": 2, 
        "select_multiple_modifier": "alt", 
        "selected_parent_close": "select_parent", 
        "initially_select": ["phtml_2"] 
       }, 
       "themes": { 
        "theme": "classic", 
        "dots": true, 
        "icons": true 
       }, 
       "plugins": ["themes", "html_data", "ui"] 
      }); 
     }); 

    </script> 

이 목록에 대한 요소. 다시 말하지만, ul 목록이 div id = "demo2"에 직접 쓰여지면 제대로 작동합니다. 그러나 목록을 동적으로 만들려고 할 때 이러한 동적으로 생성 된 요소의 click 이벤트가 작동하지 않습니다. 아무 반응이 없습니다. 결과 HTML을 확인했는데 볼 수있는 한 모든 것이 잘됩니다. 클릭 이벤트가 설정되어있을 때 동적 요소가 없기 때문에 클릭 이벤트가 설정되지 않은 것입니까? 그렇다면 어떻게해야합니까? 동적으로 생성 된 요소에서 이벤트를 트리거 할 수 있어야합니다. JsTree 설명서를 살펴 보았습니다. 그러나 이벤트 목록을 나열하는 것보다는 오히려 얇은 것이므로 사용 방법을 보여주지 않았습니다. 콜백을 할 수 있도록 트리를 만든 후에 만 ​​클릭 이벤트가 설정되어 작업 할 수 있다고 생각하지만 콜백을 작성하는 방법을 알 수 없습니다. (나는이 스크립트로 내 머리 위로 jquery와 way에 매우 익숙해졌지만, 나는 그것을 따라갈 때 배우려고 노력하고있다.)

답변

4

사실, 문서를 가지고 조금 더 고심하여 대답을 찾았습니다! 나는 문서 전체가 jQuery에 대해 조금 더 알게되면 문서가 더 쉽게 이해 될 것이라고 생각한다. 어쨌든, 다른 누군가가 관심이 있다면, 이것이 내가 트리를 가질 때 트리거하도록 이벤트를 바인드하기 위해해야만하는 것이다. 만든 날짜 :

$("#demo2") 
     .bind("loaded.jstree", function() { 
      $("a").click(function() { 
       url = "?url=" + $(this).attr("rel");      
       alert(encodeURI(url)); 
      }); 
     }).jstree(//...[the rest of the function the same as before]...