_下划线开头 2013-12-03 10:13 采纳率: 100%
浏览 6052
已采纳

jsTree的问题,请大神指点。

我的jsp代码

js代码
$(function _tree() {
$.ajaxSetup({cache:false});//缓存区清理

$("#treeDiv")
.bind("select_node.jstree", function(event, data){
if($("#treeDiv").jstree("is_closed")) {
$("#treeDiv").jstree("open_node");
} else {
$("#treeDiv").jstree("close_node");
}
})
.jstree({
"xml_data" : {
"ajax" : {
"url" : 'url',
"error" : function(){
$("#treeDiv").html(
"

" +
"初始化失败,
请刷新重试..." +
"

"
);
}
},
"xsl" : "flat"
},
"plugins" : [ "themes","ui", "xml_data"]
})
});

后台查出来的数据在控制台的:
<?xml version="1.0" encoding="utf-8"?>




<![CDATA[外系统资源]]>



也就是说,只有一个根节点。所以前面页面呈现下图:CSDN移动问答
CSDN移动问答

但是当我点击那个‘-’号的时候,就会出现下面的情况:
CSDN移动问答

它会无线循环下去,我的初步想法是去掉那个虚线的图标,或者在虚线那个“+”和“-”上加个控制事件,但是,这个办法行不通,首先这个符号是个ins,和下面展开的ins用个同一个class,试了不少办法,JSTREE的API也不全,所以没办法了。求助大神指点。

  • 写回答

1条回答

  • Todd_Pointer 2013-12-03 11:00
    关注

    你的根节点是不是有 state='closed' 属性?

    【update】

    <root>
        <item id="root_1" parent_id="0" state="closed">
            <content>
                <name><![CDATA[Node 1]]></name>
            </content>
        </item>
    </root>
    

    去掉那个state="closed"(注意,改成open是不行的),否则这个节点会被视为还有子节点,jstree会再次调用你的ajax配置的url以加载子节点的数据。 你也可以修改你的url的服务器实现,根据父节点的id返回不同的元素以实现逐级打开的效果。 并设置correct_state标志以实现节点状态的自动更正。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算