2010-01-27 65 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(); 
     };   
    }); 

这一个工作,它也应该。 :-)