Javascript jsTree addClass是';有时我记不起来了
使用jsTree和拖放插件,我试图说明节点的位置何时发生了变化。 使用Javascript jsTree addClass是';有时我记不起来了,javascript,jquery,jstree,jstree-dnd,Javascript,Jquery,Jstree,Jstree Dnd,使用jsTree和拖放插件,我试图说明节点的位置何时发生了变化。 使用move\u node.jstree事件,我向被移动的节点添加了一个isChanged类,这很好。但是,如果我移动的节点是已经移动的节点的同级节点,则先前移动的项的ischange类将被剥离 有没有办法在所有移动的节点上保留isChanged类 (移动同一分支上的节点;只有一个具有ischange类) 以下是完整性代码: $('#treeView').jstree({ "core": {
move\u node.jstree
事件,我向被移动的节点添加了一个isChanged
类,这很好。但是,如果我移动的节点是已经移动的节点的同级节点,则先前移动的项的ischange
类将被剥离
有没有办法在所有移动的节点上保留isChanged
类
(移动同一分支上的节点;只有一个具有ischange
类)
以下是完整性代码:
$('#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);
});
为了持久化该类,还需要将其添加到节点的内部jsTree表示中,否则在重新绘制节点时该类将丢失
.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);
});
谢谢@vakata,但是我得到了以下错误,因为
class
不是li_attr
的属性?无法读取undefined的属性'indexOf'。在这个版本的小提琴中可以看到错误:我刚刚编辑了我的答案-很抱歉忽略了检查。我也没有看到您试图更新锚元素上的类,而不是列表项1。以下是更新的小提琴: