我正在使用jQuery Treeview插件。请查看插件http://jquery.bassistance.de/treeview/demo/的演示页面上提供的“示例1 - 默认值”。在我的情况下,所有文件夹和文件都是链接。如果我在展开的“文件夹2”上单击,它将首先折叠,然后按照链接位置。我想要的行为是,只有崩溃的行为才会首先扩展,如果它已经扩展,它将保持这样。
切换行为的插件(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的数组: [li。,li.collapsable]
但我不知道如何从那里继续:-(希望有人可以帮助我...
我已经使用以下代码成功更改了当前所选(class = selected)链接的linkbehavior:
$(".current").click(function(e){
e.preventDefault();
});
非常感谢提前!
答案 0 :(得分: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();
};
});
这个应该像它应该的那样工作。 : - )