jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 为什么jsTree open_all()可以为我工作?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
昨天开始玩jQuery和jsTree插件,并且使用AJAX调用成功地加载了一个servlet。现在,我想让树在加载后打开所有节点,所以我在ajax属性添加一个成功函数。但是,我似乎无法让open_all()方法正常工作。我非常新的使用jQuery,所以我猜这是一件简单的事情,我做错了。

Firebug没有显示任何错误,排除了错误方法名称的愚蠢错误。我检查了文件,我想我正在按照我所读的内容正确地做一切。树正在加载,但在页面加载后不打开所有节点。

我在Firefox 3.6.8上使用jQuery 1.4.2和jsTree 1.0rc2。

这是我用来加载树并尝试打开树中所有节点的代码

// Create the tree object
$("td#modelXML").jstree({
    core : { "animation" : 0 },//xml_data : {"data" : "" + xml,"xsl" : "nest"},xml_data : {"ajax" : 
                    {"url" : "servlet/GetModelHierarchy","type" : "post","data" : { modelId : "" + modelId} },"xsl" : "nest","success" : function(){
                                $(this).open_all(-1);
                                }
    },themes : {"theme" : "classic","dots" : true,"icons" : true},types : { 
        "types" : {
            "category" : {
                "valid_children" : ["factor"]
            },"factor" : {
                "valid_children" : ["level"]
            },"level" : {
                "valid_children" : "none","icon" : {
                    "image" : "${request.contextPath}/jsTree/file.png"
                }
            }
        }
    },plugins : ["themes","types","xml_data"]
});

解决方法

你必须挂钩事件,然后调用open_all。

要使所有节点在加载时打开,请使用:

var tree = $("#id-or-selector-for-my-tree-element");
    tree.bind("loaded.jstree",function (event,data) {
        tree.jstree("open_all");
    });

在使用.jstree({…})初始化树之前,请执行上述操作。

如果刷新它,那么要让所有的节点再次打开,你必须使用:

tree.bind("refresh.jstree",data) {
        tree.jstree("open_all");
    });

大佬总结

以上是大佬教程为你收集整理的jquery – 为什么jsTree open_all()可以为我工作?全部内容,希望文章能够帮你解决jquery – 为什么jsTree open_all()可以为我工作?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: