我需要在点击treeview链接/文本时避免jquery treeview的崩溃。
例如,如果我在树状视图中显示directories/subdirectories
列表,我只需在点击+/- image
而不是点击directories
答案 0 :(得分:9)
您需要更新treeview javascript代码本身。对于Treeview 1.4,请注释掉以下行(66-68):
this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
toggler.apply($(this).next());
}).add( $("a", this) ).hoverClass();
这将确保仅在+/-点击时发生展开/折叠。如果适用,展开全部和折叠所有功能也将继续有效。
更好的是,在定义树时提供新参数,并且只有在条件满足时才覆盖默认功能。例如,
if (settings.expandMode != 'simple'){
this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
toggler.apply($(this).next());
}).add( $("a", this) ).hoverClass();
}
您的树视图定义可能如下所示:
$("#tree").treeview({
animated: "fast",
persist: "cookie",
collapsed: true,
control: "#treecontrol",
expandMode: "simple" // custom - only toggles per the +/- icon
})
希望你明白了。祝你好运。
答案 1 :(得分:0)
将您的点击事件绑定到+/-图像,而不是包含图像和目录文本的容器。
因此,如果你的HTML看起来像这样:
<ul class="dir-list">
<li>
<div><img class="expand" src="expand.gif" /><span>Directory Name</span></div>
<ul>
<li><div><img class="expand" src="expand.gif" /><span>Sub Directory Name</span></div></li>
</ul>
</li>
</ul>
您可以通过执行以下操作将您的点击绑定到图片:
$('.dir-list img.expand').click(function(){
//Do stuff here to expand or collapse the area
});