node get_node example create_node bootstrap javascript html jstree

javascript - get_node - jstree select node



jstree eliminar elementos por defecto del menú contextual (4)

Tengo un problema con el menú de contexto de JsTree, ¿cómo puedo eliminar los elementos predeterminados del menú de contexto como Crear, Eliminar, Cambiar nombre? Quiero proporcionar elementos propios, pero los elementos predeterminados aún se encuentran en el menú contextual.

"contextmenu" : { "items" : { "IsimVer" : { "label" : "İsim Değiştir", "action" : function (obj) { this.rename(obj); } }, "Ekle" : { "label" : "Ekle", "action" : function (obj) { this.create(obj); } }, "Sil" : { "label" : "Sil", "action" : function (obj) { this.remove(obj); } } }


Sólo establece el valor en falso en el objeto de elementos. Por ejemplo, para desactivar el menú de edición (cortar, copiar, pegar), intente esto:

contextmenu : { items : { "ccp" : false } }


Si desea modificar las etiquetas de los elementos existentes o eliminar algunos, una solución simple como la siguiente funcionará

"contextmenu": { "items": function(node) { var defaultItems = $.jstree.defaults.contextmenu.items(); defaultItems.create.label = "Ekle"; delete defaultItems.ccp; return defaultItems; } }

Esto establecerá la etiqueta de los elementos "Crear" como "Ekle" y eliminará la copia cortada de los elementos predeterminados.


Tuve este problema hace un par de días, pero aún no he decidido si se trata de un error o una característica. Puede estar relacionado con el orden en que se cargan los complementos.

Lo que funcionó para mí fue devolver los elementos de una función:

"contextmenu" : { "items" : function ($node) { return { "IsimVer" : { "label" : "İsim Değiştir", "action" : function (obj) { this.rename(obj); } }, "Ekle" : { "label" : "Ekle", "action" : function (obj) { this.create(obj); } }, "Sil" : { "label" : "Sil", "action" : function (obj) { this.remove(obj); } } }; } }

Después de algunas búsquedas, parece que el comportamiento predeterminado es que los elementos del menú amplíen los valores predeterminados , por lo que esta es una característica. Desafortunadamente, la documentación actualmente carece de detalles sobre este punto.



Establece ccp , crea , renombra , elimina a falso así:

plugins : ["themes","json_data","ui","crrm", "hotkeys", "types", "contextmenu"], contextmenu : { items : { "IsimVer" : { "label" : "IsimVer", "action" : function (obj) { alert("IsimVer"); } }, "Ekle" : { "label" : "Ekle", "action" : function (obj) { alert("Ekle"); } }, "Sil" : { "label" : "Sil", "action" : function (obj) { alert("tiga"); } }, "ccp" : false, "create" : false, "rename" : false, "remove" : false } }