2010-01-27 47 views
2

我正在使用jQuery Treeview插件。查看插件http://jquery.bassistance.de/treeview/demo/的演示頁面上提供的「Sample 1 - default」。在我的情況下,所有文件夾和文件都是鏈接。如果我點擊例如擴展的「文件夾2」,它將首先崩潰,然後跟隨鏈接位置。我想要的行爲是,只有摺疊的會首先展開,如果它已經展開,它將保持這樣。jQuery TreeView插件更改鏈接行爲(避免崩潰)

在插件的代碼,以切換行爲(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(); 

我已經想通了,如何讓所有的鏈接,應改爲:

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

其結果將是所有鋰這是目前可摺疊(擴大)的陣列:[李,li.collapsable]

但我不知道該怎麼牛逼Ø從那裏:-(希望有人能幫助我一起繼續...

我已經成功地改變了linkbehavior與此代碼當前選中(CLASS =選擇)鏈接:

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

很多感謝提前!

回答

2

也許並不清楚什麼我真的想下一次這樣做,我會盡力提高我的語言表達;-)

答案我自己的問題是:

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

也許它可以幫助有人正在尋找類似的東西。

最好的問候!

UPDATE(如果用戶展開一個節點後不重新加載頁面上方張貼的解決方案不工作)

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

這一個工作,它也應該。 :-)