我有一個jsTree,我希望它的一些節點是可移動的。根節點及其直接子節點不能移動。jsTree禁用移動一些節點
我正在使用crrm,它的工作方式與預期的一樣,但它仍然允許我拖動所有節點,即使是那些不能放在任何位置的節點(緊接在root下面)。我不希望它們是可拖動的,即用戶根本無法拿起它們。
我有一個jsTree,我希望它的一些節點是可移動的。根節點及其直接子節點不能移動。jsTree禁用移動一些節點
我正在使用crrm,它的工作方式與預期的一樣,但它仍然允許我拖動所有節點,即使是那些不能放在任何位置的節點(緊接在root下面)。我不希望它們是可拖動的,即用戶根本無法拿起它們。
類似的問題問,看看我的回答是: dnd, how to restrict dropping to certain node types?
需要有對crrm.move.check_move功能某種類型的嗅覺測試。你的情況這將是根和第一個孩子。
我想你需要的是drag_check
"dnd" : {
"drop_target" : false,
"drag_check" : function(data)
{
if(data.r.attr("id") == ...)
return false;
//if you want to enable drag for certain nodes return following
return {
after : true,
before : false,
inside : false
}
}
我相信只有在拖放外部對象時纔會使用「dnd」回調。問題是關於樹內部的節點。 –
在當前版本jsTree的(3.0.8),你這樣做:
使用is_draggable功能與插件類型沿控制可以拖動的內容。如果你想看到我使用的圖標包括bootstrap的圖形樣式表。這裏的代碼假設你已經在你的HTML中有一個div和jstree列表。如果有人無法理解上面的代碼,我會發佈一個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功能來篩選可放開的類型。使用node_parent來獲取可放置的。
相似,但不是我在這裏問的。 crrm check_move對我的問題沒有用處。它只會阻止我拖放拖動的節點。我不希望用戶能夠拖動無法在任何地方丟棄的節點。 – Ali