Jstree,检查 drop 是否在节点下方、内部或上方

Jstree, check if drop is bellow, inside or above the node

我已经知道如何从被拖节点和目标节点获取ID了。但是我需要知道那个下降是在节点波纹管内还是在节点上方。我该怎么做?

divTree.jstree({
    'core': {
        'check_callback': true,
        'data': data,
        'themes': {
            'icons': hasIcons,
            'dots': hasDots
        }
    },
    'plugins': ['themes', 'ui', 'search', 'contextmenu','dnd'],
    'search': {
        'case_sensitive': false,
        'show_only_matches': true
    },
    'contextmenu': {
        'items': contextMenu != null ? contextMenu : ''
    }
})

这是我的 JStree

$(document).on("dnd_stop.vakata", eventDrop);

我是这样称呼掉落事件的

const eventDrop = (data) => {
    let elementID = data.data.nodes[0]
    let targetID = data.event.target.parentNode.id;
}

这是我获取 enodes ID 的地方

我想找到类似的东西:

const eventDrop = (data) => {
let elementID = data.data.nodes[0]
let targetID = data.event.target.parentNode.id;
let elementPosition = data.event.indexPos; (Where it could say if its inside, bellow, our above)}

好的,在深入了解 Jstree 代码后,我想我找到了答案。 所以基本上我所做的是每次鼠标在树内移动时,检查鼠标朝向悬停(或最近)元素的位置是在下方,上方还是内部。

我把活动改成了这样:

 const evt_adminmodules_areaTree_OnDrop = (e, data) => {
    if (data.event.type == 'mouseup') {
        let elementID = data.data.nodes[0]
        let targetID = data.event.target.parentNode.id;
    }
    else if (data.event.type == 'mousemove') {
        let ref = $(data.event.target).closest('.jstree-anchor');
        let off = ref.offset();
        if (off) {
            let rel = data.event.pageY - off.top;
            let h = ref.outerHeight();
            if (rel < h / 3) _dropPosition = 'up';
            else if (rel > h - h / 3) _dropPosition = 'bot';
            else _dropPosition = 'mid';
        }
    }
}

至少这个问题解决了:D! 谢谢