2013-02-11 3 views
2

저는 현재 너무로 JSON을 사용하는 내 다이나 트리를로드다이나 트리 아약스로드 콜백

$(document).ready(function() { 

    // Loads tree 
    $("#TreeManGrp").dynatree({ 
    initAjax: { 
     url: "/Terminals/Refresh/" 
    }, 
    onActivate: function (node) { 
     if (node.data.href) { 
     window.open(node.data.href, "_self"); 
     } 
    }, 
    persist: true, 
    noLink: false, 
    fx: { height: "toggle", duration: 200 } 

    }); 
}); 

나는 나무가 DOM에로드 된 후에 존재하는 경우 활성화 된 노드를 얻을 필요가있다. 이 방법을 사용하는 것이 좋습니다.

// Loads tree 
    $("#TreeManGrp").dynatree({ 
    initAjax: { 
     url: "/Terminals/Refresh/", 
     success: function (data) { 
     alert("hi"); 
     } 
    }, 
    onActivate: function (node) { 
     if (node.data.href) { 
     window.open(node.data.href, "_self"); 
     } 
    }, 
    persist: true, 
    noLink: false, 
    fx: { height: "toggle", duration: 200 } 
    }); 

하지만이 방법도 사용할 수 없습니다. dynatree 소스 파일을 들으며 말하자면 :

if (ajaxOpts.success) { 
     this.logWarning("initAjax: success callback is ignored; use onPostInit instead."); 
     } 

내 질문은 누구나 대신 onPostInit을 사용하는 방법을 알고 있습니까?

답변

3

나는 그것을 알아 냈 :

// Loads tree 
    $("#TreeManGrp").dynatree({ 
    initAjax: { 
     url: "/Terminals/Refresh/" 
    }, 
    onActivate: function (node) { 
     if (node.data.href) { 
     window.open(node.data.href, "_self"); 
     } else { 
     ContextButtonSwitch(node.data.type, node.data.itemId); 
     } 


    }, 
    persist: true, 
    noLink: false, 
    fx: { height: "toggle", duration: 200 }, 
    onPostInit: function (isReloading, isError) { 
     var node = $("#TreeManGrp").dynatree("getActiveNode"); 
     if (node) { 
     ContextButtonSwitch(node.data.type, node.data.itemId); 
     } 
    } 
    });