在某些情况下不记得 jsTree addClass
jsTree addClass isn't remembered in some instances
使用 jsTree 和拖放插件,我试图说明何时更改了节点的位置。
使用 move_node.jstree
事件,我将 isChanged
的 class 添加到移动的节点,这工作正常。但是,如果我移动的节点是已移动节点的兄弟节点,则先前移动的项目的 isChanged
class 会被剥离。
有没有办法在所有移动的节点上保留 isChanged
class?
Demo
(移动同一分支上的节点;只有一个具有 isChanged
class)
这里是完整的代码:
$('#treeView').jstree({
"core": {
"check_callback": true
},
"plugins": ["dnd"]
})
.on('move_node.jstree', function (e, data) {
$("#" + data.node.a_attr.id).addClass("isChanged");
console.log(data.node.a_attr.id);
});
为了持久化 class 你还需要将它添加到节点的内部 jsTree 表示中,否则重绘节点时 class 将丢失。
.on('move_node.jstree', function (e, data) {
$("#" + data.node.a_attr.id).addClass("isChanged");
if(data.node.a_attr.class) {
if(data.node.a_attr.class.indexOf('isChanged') === -1) {
data.node.a_attr.class += ' isChanged';
}
}
else {
data.node.a_attr.class = 'isChanged';
}
console.log(data.node.a_attr.id);
});
使用 jsTree 和拖放插件,我试图说明何时更改了节点的位置。
使用 move_node.jstree
事件,我将 isChanged
的 class 添加到移动的节点,这工作正常。但是,如果我移动的节点是已移动节点的兄弟节点,则先前移动的项目的 isChanged
class 会被剥离。
有没有办法在所有移动的节点上保留 isChanged
class?
Demo
(移动同一分支上的节点;只有一个具有 isChanged
class)
这里是完整的代码:
$('#treeView').jstree({
"core": {
"check_callback": true
},
"plugins": ["dnd"]
})
.on('move_node.jstree', function (e, data) {
$("#" + data.node.a_attr.id).addClass("isChanged");
console.log(data.node.a_attr.id);
});
为了持久化 class 你还需要将它添加到节点的内部 jsTree 表示中,否则重绘节点时 class 将丢失。
.on('move_node.jstree', function (e, data) {
$("#" + data.node.a_attr.id).addClass("isChanged");
if(data.node.a_attr.class) {
if(data.node.a_attr.class.indexOf('isChanged') === -1) {
data.node.a_attr.class += ' isChanged';
}
}
else {
data.node.a_attr.class = 'isChanged';
}
console.log(data.node.a_attr.id);
});