1

ノード作成時にjstreeが作成するDOMを変更したい。プログラムでノードを作成すると、jstree によって作成されます <li><a ../></li>。を にラップしたいのですが、<span><a ../> more content</span>jstree が作成する DOM をカスタマイズする方法がわかりません。

最初の jstree の作成は簡単です (いくつかのダミー データを使用します)。

$("#tree").jstree({
        "json_data": {
            "data": {
                "data": "TE-CON",
                "metadata": {
                    "id": 23
                },
                "children": [
                    {
                        "data": "Node 1",
                        "children": [ "Node1.1", "Node1.2" ]
                    },
                    "TE-CON"
                ]

            }},
        "plugins": [ "themes", "json_data", "grid" ]
    });

これにより DOM が作成されます。

<li class="jstree-last jstree-open">
<ins class="jstree-icon">&nbsp;</ins>
    <a href="#"><ins class="jstree-icon"></ins>TE-CON</a>

    <ul style="">
        <li class="jstree-open">
            etc...

<a href="#"><ins class="jstree-icon"></ins>TE-CON</a>が作成されるのではなく<span><a href="#"><ins class="jstree-icon"></ins>TE-CON</a></span>、span ブロックに追加の HTML が必要です。

4

1 に答える 1

0

サーバーから要素を静的に作成した場合は、前述と同じ方法を使用できます。ただし、要素を動的に作成した場合は、ノードの作成後に次のように操作を実行する必要があります。

var node = $.jstree._reference('#demo1').create_node(
 node, 'last', data, false, false
);
var newnode = node.children().last();

node.append('<input type="text" ></input>');

このリンクに従って html_titles を使用する別の方法があります https://stackoverflow.com/a/5059969/2547372

于 2013-07-03T16:39:16.387 に答える