2011-02-05 5 views

답변

1

비동기식 트리 뷰에는 콜백이 없지만 자신 만의 콜백을 추가하기는 쉽습니다. 아약스 물건은 여기에 있습니다 : 난 그냥 추가

$.ajax($.extend(true, { 
    url: settings.url, 
    dataType: "json", 
    data: { 
     root: root 
    }, 
    success: function(response) { 
     if(settings.dataLoaded) 
      settings.dataLoaded(); 
     child.empty(); 
     $.each(response, createNode, [child]); 
     $(container).treeview({add: child}); 
    } 
}, settings.ajax)); 

:

https://github.com/jzaefferer/jquery-treeview/blob/master/jquery.treeview.async.js#L42

$.ajax($.extend(true, { 
    url: settings.url, 
    dataType: "json", 
    data: { 
     root: root 
    }, 
    success: function(response) { 
     child.empty(); 
     $.each(response, createNode, [child]); 
     $(container).treeview({add: child}); 
    } 
}, settings.ajax)); 

당신은 이런 식으로 settings.dataLoaded를 추가하고 위의 코드를 변경하여 콜백을 추가 할 수 있습니다 두 줄은 success: 아래에 있습니다. 그럼 당신은 이런 식으로 트 리뷰 설정할 것 :이 시도하지 않은

$("#tree").treeview({ 
    url: "/loadtree", 
    dataLoaded: my_function 
}); 

을했지만 작동해야하며 그렇지 않으면, 그것은가는 얻기위한 좋은 출발점이 될 것입니다.

소스 코드에 액세스 할 수 있으므로 사용하지 않는 것이 좋습니다. 콜백 지원을 직접 추가하지 않고 Jörn Zaefferer에게이 기능을 기본 저장소에 추가하는 패치를 보내지 않는 것이 좋습니다.

1

콜백을 추가하는 것이 도움이되었습니다. 감사합니다.

트 리뷰의 비동기 소스 코드 내에서 순서를 변경하고자 할 수도 있습니다.

$.ajax($.extend(true, { 
    url: settings.url, 
    dataType: "json", 
    data: { 
     root: root 
    }, 
    success: function(response) { 
     child.empty(); 
     $.each(response, createNode, [child]); 
     $(container).treeview({add: child}); 

      if(settings.dataLoaded) 
     settings.dataLoaded(); 

    } 
}, settings.ajax)); 

이렇게하면 비동기 스크립트가 DOM 수정을 마칠 수 있습니다. 이제 settings.dataLoaded는 sucess : function의 끝에옵니다.

관련 문제