show_only_matches не работает для поискового плагина jstree

Я настроил свой Jstree следующим образом:

var $proceduresTree = $('#procedures-tree');

$proceduresTree.jstree({
    'core' : {
        'data' : data,

        "themes":{
            "icons":false
        }
    },
    "search": {
        "show_only_matches": true
    },
    "plugins" : ["checkbox", "search"]

});


$('#search_input').keyup(debounce(function () {

    var v = $('#search_input').val().trim();

    debugger;

    if( false &&  v.length === 0 ) {
        $proceduresTree.jstree(true).hide_all();
    }
    else {
        $proceduresTree.jstree(true).search(v);
    }

}, 50));

Тем не менее show_only_matches Опция, кажется, не имеет никакого эффекта. Я что-то пропустил?

3 ответа

Привет @ Александр Сурафель, вам нужно установить свой объект конфигурации jsTree "show_only_matches_children": true свойство, необходимое для того, чтобы скрыть все узлы самим скриптом. Так что вы просто должны установить, как это, вы задаете объект config jsTree.

var $proceduresTree = $('#procedures-tree');

$proceduresTree.jstree({
    'core' : {
        'data' : data,

        "themes":{
            "icons":false
        }
    },
    "search": {
        "show_only_matches": true,
        "show_only_matches_children": true
    },
    "plugins" : ["checkbox", "search"]

});


$('#search_input').keyup(debounce(function () {

    var v = $('#search_input').val().trim();

    //debugger;

        $proceduresTree.jstree(true).search(v);


}, 50));

Пример: codepen https://codepen.io/headmax/pen/BwvYMr?editors=1111

Проблема была вызвана неиспользованием style.min.css для правильной версии.

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

"search": {
    "case_sensitive": false,
    "show_only_matches": true
}

Полный код вместе с вашим HTML, был бы простой вариант, чтобы найти проблему. Если $ rulesTree является допустимым объектом jsTree, поместите ваш поисковый код в

$(document).ready(function () {
   //Your search code goes here.
});

Ниже приведен простой код поиска, который я использую, и он отлично работает. Для полного примера вы можете обратиться https://everyething.com/Example-of-simple-jsTree-with-Search

$(document).ready(function () {
   $(".search-input").keyup(function () {
       var searchstring = $(this).val().trim();
       $('#simplejstree').jstree('search', searchstring);
   });
});
Другие вопросы по тегам