我有一个基于 jsTree 插件的类选择器的通用代码。我在另一个 cshtml 页面中使用了 jsTree。我只想在 jsTree 中显示匹配的节点。我已经设置了只显示匹配节点的选项,但它不起作用。
有人可以帮我吗?
$(".jsTree").each(function (index, element) {
if ($(element).data("isProcessed") != "1" && $(element).attr("isProcessed") != 1) {
$(element).data("isProcessed", "1");
$(element).attr("isProcessed", "1");
$(this).jstree({
core:
{
check_callback: true
},
checkbox:
{
keep_selected_style: true,
three_state: ($(element).data("three-state") == "false" ? false : true)
},
search:
{
case_insensitive: true,
show_only_matches: true
},
plugins: ["checkbox", "search"]
}).on('search.jstree', function (nodes, str, res) {
if (str.nodes.length === 0) {
$(element).jstree(true).hide_all();
}
});
}
});
$(document).ready(function () {
$('#jsroletree_search').keyup(function () {
$('#jsRoleTree').jstree(true).show_all();
$('#jsRoleTree').jstree('search', $(this).val());
});
});
答案 0 :(得分:1)
我有时在公共代码中遇到同样的问题 jsTree
不允许在同一页面上再有一个实例。
能否请您更换您的代码
$(document).ready(function () {
$('#jsroletree_search').keyup(function () {
$('#jsRoleTree').jstree(true).show_all();
$('#jsRoleTree').jstree('search', $(this).val());
});
});
到
$(document).ready(function () {
$('#jsroletree_search').keyup(function () {
$('#jsRoleTree').jstree(true).show_all();
$('#jsRoleTree').jstree('search', $(this).val());
$('#jsRoleTree .jstree-hidden').hide();
});
});