在jstree中,我有两个选择和取消选择的功能,我希望它是一个点击事件。
$(function () {
$('#tree_folder').on('deselect_node.jstree Event', function (e, data) {
var item_id = data.node.id;
setPermission(item_id, $role, 1);
});
});
$(function () {
$('#tree_folder').on('select_node.jstree Event', function (e, data) {
var item_id = data.node.id;
setPermission(item_id, $role, 0);
});
});
我使用这两个事件进行选择和取消选择,但这些事件甚至可以点击一个节点。当我单击一个节点(而不是一个复选框)时,它会调用select或取消选择event并添加或删除check to node。 如何在不选择或取消选择的情况下为jstree上的click事件编写函数?
答案 0 :(得分:0)
在您的事件处理程序中,您可以检查单击的元素是否是您的复选框。
This fiddle在一个大div上有一个偶数监听器,但只有当用户点击div中的li而不是div本身时才执行功能。
在你的情况下,听起来你想要检查e以查看它是否是复选框,然后只调用你的setPermission方法,否则什么都不做。
<强>的JavaScript 强>
function handler(event) {
var target = $(event.target);
if (target.is("li")) {
target.children().toggle();
} else {
//alert('target is not li');
}
}
$("div").click(handler).find("ul ul").hide();
<强> HTML 强>
<div style="padding:100px;background-color:wheat;">
<ul>
<li>item 1
<ul>
<li>sub item 1-a</li>
<li>sub item 1-b</li>
</ul>
</li>
<li>item 2
<ul>
<li>sub item 2-a</li>
<li>sub item 2-b</li>
</ul>
</li>
</ul>
</div>