Как связать пользовательское поведение с двойным щелчком мыши в 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?
Ответы
Ответ 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);
});