의 바운드 이벤트를 전역 변수
var counter = 2;
를 선언 등. 경유를 AJAX 호출), 문제는 두 번째 노드 (첫 번째 자식의 첫 번째 자식) 은 다음 행이 실행될 때이 존재하지 않는다는 것입니다.
$("#treeview").data("kendoTreeView").expand("li:fist li:first")
이렇게하려면 첫 번째 expand() 실행이 끝난 직후에 해당 줄을 실행해야합니다. 의 setTimeout을 사용하여 (추한 방법)
광고 1
var yourTreeSelector = "#youTreeId";
var $tree = $(yourTreeSelector);
var treeView = $tree.data("kendoTreeView");
var $firstItem = $tree.find(' > ul > li.k-item:first');
console.log($firstItem);
//make sure selector is ok and first item exists
if($firstItem.length){
treeView.expand($firstItem); //expand first item
var secondSelectedFlag = false; //init flag to false
//handler method
selectSecond = function(){
var $fistChildOfFirstItem = $firstItem.find(' > ul > li.k-item:first');
console.log($fistChildOfFirstItem);
//make sure expand will execute only when node exists and was not expanded earlier
if(!secondSelectedFlag && $fistChildOfFirstItem.length){
secondSelectedFlag = true;
treeView.expand($fistChildOfFirstItem);//expand on selected node
treeView.unbind("dataBound");//unbind method
}
}
treeView.bind("dataBound", selectSecond);//bind a handler method to dataBound event
}
광고를 kendoTree 이벤트
를 사용하여
:
나는 두 가지 옵션 참조 2. 확장 후 첫 번째 노드 장소 다음 코드, 즉 상위를 확장 할 때부터 그렇게 쉬운 일이 아닙니다 그렇다면
setTimeout(
function(){
var $fistChildOfFirstItem = $firstItem.find(' > ul > li.k-item:first');
console.log($fistChildOfFirstItem);
treeView.expand($fistChildOfFirstItem);
},
3000 //3 seconds is reasonable amount of time
);
당신은'loadOnDemand'를 사용하고, 그것은 아들로드를 시작하고 아들이로드 될 때에 만 확장 할 수 있습니다 때입니다 그것은 그랜드 아이들을 얻는 것입니다. – OnaBai
@OnaBai 예 loadondemand를 사용하고 있습니다. 요청시로드를 사용하고 요청시로드를 사용하지 않을 때 어떻게해야합니까? – Jonathan