DND 图标在屏幕上没有改变,但在 DOM 中改变
DND icon not changing on-screen, but is changing in DOM
我需要能够将树节点拖到 div。我在让鼠标图标正确呈现时遇到问题。它始终显示为 X (jstree-er),即使 DOM 中的 class 更改为 jstree-ok.
我已经调试并确定 DOM 正在被更改。它只是没有任何不同的呈现。
铌。找到的解决方案 here 不起作用,因此注释掉了该方法(data.helper.find returns 什么都没有)。
$(document).on('dnd_move.vakata', function (e, data) {
var t = $(data.event.target);
// Valid drop target?
if (t[0].classList.contains("dropzone")) {
$("#jstree-dnd i").removeClass('jstree-er').addClass('jstree-ok');
//data.helper.find('.jstree-icon').removeClass('jstree-er').addClass('jstree-ok');
console.log($("#jstree-dnd i"));
}
else {
$("#jstree-dnd i").removeClass('jstree-ok').addClass('jstree-er');
//data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er');
console.log($("#jstree-dnd i"));
}
})
更新:添加了 jsfiddle。但是,它在 jsfiddle 中工作正常。事实证明,巧合的是在这里尝试使用较旧的 JQuery 突出了这个问题......
JSFiddle
似乎问题是 JQuery 3.3.1 和 JSTree 3.3.7
之间的一些不兼容
以上代码使用 JQuery 2.2.4
工作正常
我需要能够将树节点拖到 div。我在让鼠标图标正确呈现时遇到问题。它始终显示为 X (jstree-er),即使 DOM 中的 class 更改为 jstree-ok.
我已经调试并确定 DOM 正在被更改。它只是没有任何不同的呈现。
铌。找到的解决方案 here 不起作用,因此注释掉了该方法(data.helper.find returns 什么都没有)。
$(document).on('dnd_move.vakata', function (e, data) {
var t = $(data.event.target);
// Valid drop target?
if (t[0].classList.contains("dropzone")) {
$("#jstree-dnd i").removeClass('jstree-er').addClass('jstree-ok');
//data.helper.find('.jstree-icon').removeClass('jstree-er').addClass('jstree-ok');
console.log($("#jstree-dnd i"));
}
else {
$("#jstree-dnd i").removeClass('jstree-ok').addClass('jstree-er');
//data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er');
console.log($("#jstree-dnd i"));
}
})
更新:添加了 jsfiddle。但是,它在 jsfiddle 中工作正常。事实证明,巧合的是在这里尝试使用较旧的 JQuery 突出了这个问题...... JSFiddle
似乎问题是 JQuery 3.3.1 和 JSTree 3.3.7
之间的一些不兼容以上代码使用 JQuery 2.2.4
工作正常