2010-01-27 6 views
2

jQuery Treeview 플러그인을 사용하고 있습니다. http://jquery.bassistance.de/treeview/demo/ 플러그인의 데모 페이지에서 제공되는 "Sample 1 - default"를 살펴보십시오. 내 경우 모든 폴더와 파일은 링크입니다. 확장 된 "폴더 2"에서 예를 들어 클릭하면 먼저 접혀 링크 위치로 이동합니다. 내가 원하는 행동은 붕괴 된 것들만이 먼저 팽창 할 것이고 벌써 팽창한다면 그것은 이와 같이 유지 될 것입니다.jquery treeview plugin 변경 링크 동작 (축소 방지)

플러그인의 코드 동작을 전환 (jquery.treeview.js)입니다 다음 : 이미 변경해야합니다 모든 링크를 얻을하는 방법을 알아 냈

66 this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) { 
67 toggler.apply($(this).next()); 
68 }).add($("a", this)).hoverClass(); 

:

t [li.collapsable 리.]

그러나 나는 방법을 모른다 :

$('a').parent().parent().filter('.collapsable') 

결과는 현재 접을 수있는 (확장) 모든 리튬의 배열이됩니다 오

가 이미 성공적으로 변경 ... 거기에 희망이 누군가가 함께 나를 도울 수 :-(에서 진행이 코드는 현재 선택 (클래스 = 선택) 링크에 대한 linkbehavior :

$(".current").click(function(e){ 
     e.preventDefault(); 
    }); 

많은 감사에서 전진!

답변

2

어쩌면 난 정말 다음에 그렇게 내 음성화을 개선하기 위해 노력할 것입니다 ;-)

내 자신의 질문에 대한 대답을 수행 할 작업을 취소하지 않은 것은 :이 도움이 어쩌면

$('li').filter('.collapsable').find('a:first:not(.current)').click(function(e){ 
      e.stopImmediatePropagation(); 
     }); 

비슷한 것을 찾고있는 누군가.

최고!

업데이트는가에 가정 그것으로이 하나가 작동

$('a').click(function(e){ 
     if ($(this).is('.current')) { 
      e.preventDefault(); 
     } else if ($(this).parent().parent().is('.collapsable')) { 
      e.stopImmediatePropagation(); 
     };   
    }); 

(사용자가 후 페이지를 다시로드하지 않고 노드를 확장하면 위의 게시 된 솔루션은 작동하지 않습니다). :-)