我需要能够将树节点拖动到div。我在获取mouseicon正确呈现时遇到问题。即使DOM中的类更改为jstree-ok,它也始终显示为X(jstree-er)。

我已经调试,并且确定DOM已更改。只是没有任何不同的呈现。

Nb。找到的解决方案here不起作用,因此注释掉了该方法(data.helper.find不返回任何内容)。

$(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可以正常工作

关于jquery - DND图标在屏幕上未更改,但在DOM中已更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54903845/

10-09 23:24
查看更多