2014-12-03 59 views
2

如果我将FX 1-5顶端我创造了这个jstree 3得到

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

现在当目标得到了下降的位置,目标是1-1 但如果我将fx 1-5移到底部,目标是1-8

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

回答

3

这可能与您的直接问题稍有不同,但这是我如何解决找出放置位置的问题。 在调用'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; 
    });