Подтвердить что ты не робот

Как связать пользовательское поведение с двойным щелчком мыши в jsTree?

Я использую плагин jsTree jQuery и хочу выполнить код, когда пользователь дважды щелкает по node.

Я не могу заставить его работать. Я нашел документацию по событию ondblclk, но она не срабатывает.

    browser.jstree(
            {
                plugins: ["themes", "json_data", "ui", "cookies"],
                callback:
                {
                    ondblclk: function (node, tree) {
                        if (!thisReportBrowserthis._isFoldersOnly) {
                            var f = node;
                        }
                    }
                }
            }
        );

Как я могу обрабатывать события двойного щелчка с помощью jstree?

4b9b3361

Ответ 1

Оказывается, я могу это сделать:

jstree.bind("dblclick.jstree", function (event) {
   var node = $(event.target).closest("li");
   var data = node.data("jstree");
   // Do my action
});

node содержит li, который был нажат, и data содержит метаданные с моей информацией в нем.

Ответ 2

'dblclick.jstree' не существует в последней версии jsTree 1.0.

DoubleClick для node:

$("#yourtree").delegate("a","dblclick", function(e) {
  var idn = $(this).parent().attr("id").split("_")[1];
  alert(idn); //return NodeID    
});

Вставьте это, если вы хотите просто dblclicked node

if (this.className.indexOf('icon') == -1) {  /* is the node clicked a leaf? */ }

Ответ 3

Немного другое, чтобы получить данные для меня, но в остальном ответ GiddyUpHorsey был спот-на. Вот код еще раз:

        jstree.bind("dblclick.jstree", function (e, data) {
            var node = $(e.target).closest("li");
            var id = node[0].id; //id of the selected node
        });

Ответ 4

Вышеупомянутые ответы не работают с последней версией jstree (что равно 3.3.4)
Это стоило мне дня работы, но я наконец получил его. Здесь мы работаем doubleclick для редактирования кода:

$('#tree1').bind("dblclick.jstree", function (event) {
  var tree = $(this).jstree();
  var node = tree.get_node(event.target);
  tree.edit(node);
});