jstree 3获得目标被丢弃的位置

时间:2014-12-03 13:16:02

标签: 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"
      ]
    });
});

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

是否有任何方法可以确定原点是在目标之前还是之后?

1 个答案:

答案 0 :(得分:3)

这可能与你的直接问题有点不同,但这就是我如何解决了确定掉落位置的问题。 在&#39; dnd_stop.vakata&#39;之后被称为&#39; move_node.jstree&#39;调用的事件包含要移动的项目,旧父项,新父项以及要删除项目的索引点。

$('#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;
    });