Mr *_*der 14 javascript treeview jquery dynatree jquery-dynatree
当我做以下
$('#tree').dynatree("option","initAjax",{url:"http://google.com"});
Run Code Online (Sandbox Code Playgroud)
我希望dynatree忘记当前的树数据,并使用来自指定url的新数据重新加载.但我发现默认情况下不会这样做.
谢谢.
lon*_*aff 15
看看tree.reload()方法,它应该做你想做的事情.
请参阅此处的文档:http://wwwendt.de/tech/dynatree/doc/dynatree-doc.html#h8.2
在文档中,树是树的内部绘图,您可以通过调用getTree命令来获取它: $("#node").dynatree("getTree")
tree.reload();用于动态加载的数据,如Ajax.如果您正在使用ul/li列表并需要重新加载树,则必须执行以下操作:
$("#tree").dynatree("destroy"); 在常规dynatree创建代码之前.destroy文件没有记录(参见http://wwwendt.de/tech/dynatree/doc/dynatree-doc.html).
小智 5
功能初始化:
function InitTree() {
$("#tree3").dynatree({
(...init params...)
});
}
InitTree();
Run Code Online (Sandbox Code Playgroud)
要重新加载数据,请致电:
$("#tree3").dynatree("destroy");
InitTree();
Run Code Online (Sandbox Code Playgroud)
此问题与尝试使用新数据重新加载/刷新dynatree重复
我的解决方案并不需要像弯路empty()和destroy()等想一想:当Dynatree创建您指定的设置,它必须使用的字典.然而,由于这是一个配置字典,它不会被重新评估,即使一些参数是变量并且由于点击等而发生变化.所以为了解决这个问题并避免昂贵的操作,比如删除DOM并重新创建它,我们就像我认为Dynatree开发人员一样有这个意图(但在AJAX/JSON示例中没有明确记录):
//The HTML:
<input name="filter" id="checkbox" type="checkbox" value="X">Checkme<br>
<label id="mylabel"></label>
$("#checkbox").click(function() {
$("#mylabel").text($(this).is(":checked"))
$("#tree").dynatree("option", "initAjax", {
url: "myurl/myphp.php",
data: {
myparameter: $("#checkbox").is(":checked").toString()
}
});
$("#tree").dynatree("getTree").reload();
});
Run Code Online (Sandbox Code Playgroud)
此示例在#tree每次单击按钮时设置配置,然后重新加载树.
| 归档时间: |
|
| 查看次数: |
24803 次 |
| 最近记录: |