Jstree: данные параметра привязки dblclick не определены - PullRequest
4 голосов
/ 18 мая 2011

Я пытаюсь использовать хороший lib jstree , но у меня есть странная проблема с привязкой dblclick. Вот мой код

$("#basic_html").jstree({
    themes: {
        url: "http://mywork/shinframework/shinfw/themes/redmond/css/jstree/default/style.css"
    },
    "plugins" : ["themes","html_data","ui","crrm","hotkeys", "core"],
});

$("#basic_html").bind("dblclick.jstree", function (e, data) {
    alert(e);
    alert(data);
});

Когда этот код запускается, и я делаю dblclick для какого-то узла, я вижу 2 предупреждения. Первый object -правильный, второй undefined - НО я хочу получать информацию о данных.

Пожалуйста, если какой-нибудь специалист решит эту проблему, дайте мне правильный путь для правильного использования dblclick и получите «данные» об узле, на котором я нажал.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 июля 2013
$("#basic_html").bind("dblclick.jstree", function (event) {
    var node = $(event.target).closest("li");//that was the node you double click
});

это код, который вы хотите.

0 голосов
/ 09 сентября 2011

Я рекомендую этот подход. , .

$("#basic_html li").live("dblclick", function (data) {
   //this object is jsTree node that was double clicked
   ...
});

Во-первых, вам обычно нужно только знать, был ли нажат li , поэтому отслеживание события в li даст вам все, что вам нужно. Во-вторых, используйте live или делегат для привязки события, чтобы вы могли манипулировать деревом, не прерывая событие.

Как только вы получили двойной щелчок на узле (объект this ), вы можете использовать встроенные функции, подобные этой. , .

if (!jsAll.is_selected(this)) { return false; } //cancel operation if dbl-clicked node not selected

Где. , .

jsAll = $.jstree._reference("basic_html")
...