Я следовал фрагменту кода в последнем примере http://www.jstree.com/demo/types, чтобы создать узел данного типа, и я понятия не имею, почему он не работает.
Фрагмент HTML:
<form>
<button id="buttonAddMenu" type="button">Créer Menu</button>
<button id="buttonAddParameter" type="button">Créer Paramètre</button>
<button id="buttonRename" type="button">Renomer</button>
<button id="buttonRemove" type="button">Supprimer</button>
<button id="buttonShowData" type="button">Show Data</button>
</form>
<div id="checkListParams">
<ul>
<li id="new001"><a href="#">Root menu 1</a></li>
<li id="new002"><a href="#">Root menu 2</a>
<ul>
<li><a href="#">Menu 2.1</a></li>
<li><a href="#">Menu 2.2</a>
<ul>
<li rel="parameter"><a href="#">Parameter A</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Javascript:
$(document).ready(function() {
//================
//Configuring tree
//================
$("#checkListParams").jstree({
"ui" : {
"select_limit": 1
},
"contextmenu" : {
"select_node": true
},
"hotkeys" : {
"del": false //disable deleting nodes only via DEL key
},
"types" : {
"valid_children" : [ "default" ],
"use_data" : true,
"types" : {
"default" : {
"valid_children" : [ "all" ]
},
"parameter" : {
"icon" : {
"image" : "site/media/img/icons/checklist_parameter.png"
},
"valid_children" : [ "none" ],
"create_node": false
}
}
},
"core" : { "initially_open" : [ "all" ] },
"plugins" : [
"themes", "html_data", "xml_data", "ui", "crrm", "dnd",
"contextmenu", "hotkeys", "types"
]
});
//==========================
//Configuring button actions
//==========================
$("#buttonAddMenu").click(function() {
$("#checkListParams").jstree("create");
});
$("#buttonAddParameter").click(function() {
//$("#checkListParams").jstree("create", null, "inside"); //works!
$("#checkListParams").jstree("create", null, "inside", { "attr" : { "rel" : "parameter" } });
});
$("#buttonRemove").click(function() {
$("#checkListParams").jstree("remove");
})
$("#buttonRename").click(function() {
$("#checkListParams").jstree("rename");
})
$("#buttonShowData").click(function() {
var nodes = $("#checkListParams").jstree("get_xml", {
"li_attr" : [ "id" , "class", "rel" ]
});
alert(nodes);
})
});
Линия
$ ("# checkListParams"). Jstree ("create", null, "inside", {"attr": {"rel": "parameter"}});
не работает. Я попытался изменить тип на «по умолчанию», но безуспешно ... Кроме того, у меня нет сообщений об ошибках (мне не нравится, когда сообщения об ошибках не отображаются)
Заранее спасибо.
UPDATE
Решено с использованием инструкций в http://osdir.com/ml/jstree/2011-04/msg00126.html.
Явное перечисление всех допустимых потомков (вместо использования «все») решило проблему.
Я проверю, есть ли аналогичная ошибка на страницах, посвященных jsTree, завтра, возможно, добавлю новую.
В любом случае, спасибо.