В текущей версии jsTree (3.0.8) вы делаете это:
$('#my_jstree')
.jstree({
"core" : {
"check_callback" : true
},
"dnd" : {
"is_draggable" : function(node) {
console.log('is_draggable called: ', node[0]);
if (node[0].type != 'MY-DRAGGABLE-TYPE') {
alert('this type is not draggable');
return false;
}
return true;
}
},
"types" : {
"default" : {
"icon" : "glyphicon glyphicon-flash"
},
"MY-DRAGGABLE-TYPE" : {
"icon" : "glyphicon glyphicon-info-sign"
}
},
"plugins" : [ "dnd", "types" ]})
Используйте функцию is_draggable вместе с плагином типов, чтобы управлять тем, что можно перетаскивать. Если вы хотите увидеть, что значки, которые я использовал, включают таблицу стилей глификонов начальной загрузки. Код здесь предполагает, что у вас уже есть div и список для jstree в вашем HTML. Я опубликую plunkr, если кто-то не сможет понять приведенный выше код.
РЕДАКТИРОВАТЬ - чтобы предотвратить падение, сделайте следующее:
"core" : {
"check_callback" : function(operation, node, node_parent, node_position, more) {
if (operation == 'move_node') {
console.log(node_parent);
if (node_parent.type == 'MY-DROPPABLE-TYPE') {
return true
} else
return false;
}
}
},
Используйте функцию check_callback для отображения типа droppable. Используйте node_parent, чтобы получить droppable.
person
cmzmuffin
schedule
03.01.2015