选择jstree节点时加载图像

时间:2012-04-30 20:49:31

标签: jquery jstree

jstree和java脚本的新手。需要创建一个jstree,当点击一个节点时,我需要加载一个图像。单击不同的节点应加载不同的图像。到目前为止,我有这个:

    <html>
<head>
    <title>Tree</title>

    <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="jquery.jstree.js"></script>
    <Script type="text/javascript">

 $(document).ready(function(){

     $("#test1").jstree({   


         "xml_data" : {  

             "ajax" : {  

                 "url" : "/URL/tree.xml

             },  

             "xsl" : "nest" 

         },  


         "plugins" : ["themes", "xml_data", "ui","types"] 


     });  

    });

</Script>

</script>

</head>
<body>
<div id='tree.xml1'></div>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

你问了一口,但我想这会对你有所帮助。这基于您提供的代码:

<html>
<head>
    <title>Tree</title>

    <link href="jqueryUI/css/ui-lightness/jquery-ui-1.8.19.custom.css" rel="stylesheet" type="text/css">
    <script src="jquery-1.7.1.js"></script>
    <script src="jqueryUI/js/jquery-ui-1.8.19.custom.min.js"></script>

    <script type="text/javascript" src="jstree/jquery.jstree.js"></script>

    <script type="text/javascript">

        $(document).ready(function(){

            $("#test1").jstree({   
                "html_data" : {
                    "data" : "<li id='root'><a href='#'>My Images</a><ul>" +
                        "<li id='image1.png'><a href='#'>Image 1</a></li>" +
                        "<li id='image2.png'><a href='#'>Image 2</a></li>" +
                        "<li id='image3.png'><a href='#'>Image 3</a></li>" +
                        "</ul></li>"
                },

                "plugins" : ["themes", "html_data", "ui","types"] 
            }).bind("select_node.jstree", function (event, data) {
                $("#imageDisplay").html("Load " + data.rslt.obj.attr("id") + " here"); 
            });  
        });

</script>

</head>

<body>
    <table>
        <tr><td><div id='test1'></div></td>
        <td><div id='imageDisplay'></div></td>
        </tr>
    </table>
</body>
</html>

显然,此代码没有实际显示的图像,但我相信你可以填写空白。另请注意,我使用“html_data”插件而不是“xml_data”,因为我不知道您的XML文件是如何格式化的。

答案 1 :(得分:0)

由于您提前知道图像名称和ID,为什么不在CSS中执行此操作?无需编程,图像更新全部在css文件中完成。

#f_def.jstree-open > a > ins{
    background: url("../images/f_def.png") no-repeat scroll 0px 0px transparent ! important;
}

#f_def.jstree-open > a > ins,
#f_def.jstree-open > a{
    width:100px;
    height:100px;
}


#f_def.jstree-closed > a > ins {
    /* Use Default Icon for closed */
}