jsTree - проблема с выделением последнего выбранного узла - PullRequest
3 голосов
/ 07 ноября 2011

Я использую плагин cookie в моем jsTree, чтобы запомнить и восстановить последний узел, на котором нажал пользователь.

Поведение моего дерева заключается в том, что при двойном щелчке узла я перенаправляю клиентасоответствующей странице на моем сайте.

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

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 16 ноября 2011

У нас, вероятно, такая же проблема.Добавьте следующий код в вашу конфигурацию jstree cookies:

cookies: { cookie_options: { path: '/' } }

, чтобы у вас была конфигурация дерева, подобная этой:

$('.my-tree').jstree({
            plugins: ["html_data", "ui", "cookies"]
            cookies: { cookie_options: { path: '/' } }
    })

Что происходитon?

Причина этого заключается в том, что если jQuery cookies (библиотека jstree использует для записи своих куки) не установлен путь, куки будут сохранены относительно текущегостраница, на которой вы находитесь.

Так, например, если у вас есть два узла (также листья / иглы):

  • http://localhost/Home/ с идентификатором узла localhost_home
  • http://localhost/Admin/ с идентификатором узла localhost_admin

и вы хотите перейти от http://localhost/Home/ к http://localhost/Admin/, нажав на узел localhost_admin, вы, вероятно, ожидаете, чток моменту получения http://localhost/Admin/ файла cookie jstree_select будет выбрано localhost_admin правильно?

Что на самом деле здесь произошло, так это то, что теперь существуют 2 отдельных файла cookie.Один для http://localhost/Home/ и другой для http://localhost/Admin/, содержащий 2 отдельных значения.

Устанавливая для параметра пути значение /, мы гарантируем, что только 1 файл cookie будет распространяться на всех страницах.

0 голосов
/ 07 ноября 2011

взгляните на опции типа auto_save, потому что я не уверен, когда jstree сохраняет состояние jstree в cookie.Возможно, этого не произойдет, если дважды щелкнуть

jstree cookie doc

...