jstree 3 获取目标掉落的位置

Mar*_*tin 6 javascript jstree

我创造了这个

http://jsfiddle.net/n82vvvo6/

jQuery(function($) {
    $(document).on('dnd_stop.vakata', function(e, data) {
        var origin = $(data.element);
        var target = $(data.event.target);
        // Missing something here to get if the origin is before or after the target

        $('#result').html(
            '<div><b>Target:</b> ' + target.html() + '</div>' + 
            '<div><b>Origin:</b> ' + origin.html() + '</div>'
        );
    })

    $('#jstree_demo').jstree({
      "core" : {
        "check_callback" : true,
        "themes" : { "stripes" : true },
      },
      "plugins" : [
        "dnd"
      ]
    });
});
Run Code Online (Sandbox Code Playgroud)

现在,如果我将 fx 1-5 移到顶部,则目标是 1-1 但如果我将 fx 1-5 移到底部,则目标是 1-8

有什么方法可以找出原点是在目标之前还是之后?

小智 5

这可能与您的直接问题略有不同,但这就是我解决确定下落位置问题的方法。在调用 'dnd_stop.vakata' 之后,调用 'move_node.jstree' 事件,该事件确实包含要移动的项目、旧父项、新父项和索引点,该项目将被删除。

$('#AdminTree').on("move_node.jstree", function (e, data) {

        //item being moved                      
        var moveitemID = $('#' + data.node.id).find('a')[0].id;            

        //new parent
        var newParentID = $('#' + data.parent).find('a')[0].id;

        //old parent
        var oldParentID = $('#' + data.old_parent).find('a')[0].id;

        //position index point in group
        //old position
        var oldPostionIndex = data.old_position;
        //new position
        var newPostionIndex = data.position;
    });
Run Code Online (Sandbox Code Playgroud)