есть ли что-то вроде _get_hovered в jsTree? - PullRequest
0 голосов
/ 27 мая 2011

, используя jsTreev pre 1 stable и плагин горячих клавиш.

У меня есть функция, которая срабатывает при нажатии «return». Я хочу получить текст узла, который был наведен перед нажатием Enter. Этот код $.jstree._focused().get_selected().text() работает ТОЛЬКО , если щелкнуть мышью по узлу и нажать клавишу ввода.

Как получить текст без использования мыши?

Я думал, что _get_hovered было бы неплохо иметь.

когда я использую только клавиатуру, класс для узла, который я собираюсь нажать, вводит изменения и получает новый класс jstree-hovered. Я думал, что смогу использовать это как-то, но не знаю как.

1 Ответ

3 голосов
/ 30 мая 2011

Вы фактически предоставили свое собственное решение в своем вопросе: поскольку jsTree (очень приятно) добавляет класс jstree-hovered к узлу, который в данный момент находится над ним, все, что вам нужно сделать, - это найти, какой узел имеет этот классс вашим кодом возврата ключа возврата.

jQuery("#tree").jstree({
  plugins: [ "themes","html_data","ui","crrm", "hotkeys" ],
  hotkeys: {
    "return" : function () {
      $hovered = $('#tree .jstree-hovered');
      if ($hovered.length) {
        alert('Hovered node text: ' + $hovered.text());
      } else {
        alert('No element was hovered over when return was pressed');
      }
    }
  }
});

Рабочий пример на http://jsfiddle.net/y7XVp/16/

...