JsTree checkbox - 检查事件
JsTree checkbox - check event
我有这个 JsTree
使用此代码:
var Tree = $("#MyTree");
Tree.jstree({
"core": {
"themes": {
"responsive": false,
"multiple" : false,
},
"data": dataTree
},
"types": {
"default": {
"icon": "icon-lg"
},
"file": {
"icon": "icon-lg"
}
},
"ui": {
"select_limit": 1,
},
"plugins": ["wholerow", "types", "checkbox", "ui", "crrm", "sort"],
"checkbox": {
"three_state": false,
"real_checkboxes": false
}
});
我需要将 selection 和检查操作分开,用户必须检查他想要的所有节点,但 select 只有一行用于时间。
现在,当我在行的任何地方单击它 select 该行并检查该节点时,我只需要在用户单击它时检查该复选框。
我尝试了很多活动,但唯一有效的是:
Tree.on("changed.jstree", function (e, data) { });
捕获 selection 的动作并检查。
有什么建议吗?
这个答案是关于 jstree 的第 3 版——这是你在 2016 年应该使用的。不幸的是,你的示例代码似乎使用的是 jstree rel 1,我无法帮助你。
第 3 版
首先,解开选中状态和勾选状态(checkbox.tie_selection:false)——见the docs
然后,使用check_node.jstree
事件
工作示例
var data1 = [{
"id": "W",
"text": "World",
"state": { "opened": true },
"children": [{"text": "Asia"},
{"text": "Africa"},
{"text": "Europe",
"state": { "opened": false },
"children": [ "France","Germany","UK" ]
}]
}];
$('#Tree').jstree({
core: {
data: data1,
check_callback: false
},
checkbox: {
three_state : false, // to avoid that fact that checking a node also check others
whole_node : false, // to avoid checking the box just clicking the node
tie_selection : false // for checking without selecting and selecting without checking
},
plugins: ['checkbox']
})
.on("check_node.jstree uncheck_node.jstree", function(e, data) {
alert(data.node.id + ' ' + data.node.text +
(data.node.state.checked ? ' CHECKED': ' NOT CHECKED'))
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" type="text/css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
<div id="Tree"></div>
我有这个 JsTree
使用此代码:
var Tree = $("#MyTree");
Tree.jstree({
"core": {
"themes": {
"responsive": false,
"multiple" : false,
},
"data": dataTree
},
"types": {
"default": {
"icon": "icon-lg"
},
"file": {
"icon": "icon-lg"
}
},
"ui": {
"select_limit": 1,
},
"plugins": ["wholerow", "types", "checkbox", "ui", "crrm", "sort"],
"checkbox": {
"three_state": false,
"real_checkboxes": false
}
});
我需要将 selection 和检查操作分开,用户必须检查他想要的所有节点,但 select 只有一行用于时间。 现在,当我在行的任何地方单击它 select 该行并检查该节点时,我只需要在用户单击它时检查该复选框。
我尝试了很多活动,但唯一有效的是:
Tree.on("changed.jstree", function (e, data) { });
捕获 selection 的动作并检查。
有什么建议吗?
这个答案是关于 jstree 的第 3 版——这是你在 2016 年应该使用的。不幸的是,你的示例代码似乎使用的是 jstree rel 1,我无法帮助你。
第 3 版
首先,解开选中状态和勾选状态(checkbox.tie_selection:false)——见the docs
然后,使用check_node.jstree
事件
工作示例
var data1 = [{
"id": "W",
"text": "World",
"state": { "opened": true },
"children": [{"text": "Asia"},
{"text": "Africa"},
{"text": "Europe",
"state": { "opened": false },
"children": [ "France","Germany","UK" ]
}]
}];
$('#Tree').jstree({
core: {
data: data1,
check_callback: false
},
checkbox: {
three_state : false, // to avoid that fact that checking a node also check others
whole_node : false, // to avoid checking the box just clicking the node
tie_selection : false // for checking without selecting and selecting without checking
},
plugins: ['checkbox']
})
.on("check_node.jstree uncheck_node.jstree", function(e, data) {
alert(data.node.id + ' ' + data.node.text +
(data.node.state.checked ? ' CHECKED': ' NOT CHECKED'))
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" type="text/css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
<div id="Tree"></div>