jQuery JsTree版本3+插件DND

时间:2014-12-19 12:39:05

标签: javascript jquery jstree

拖动后我在哪里可以获得信息:

  1. 目标元素
  2. 包含移动元素的位置(内部,之后,之前)
  3. ad1)我找到了这样的目标元素:

    $(document).on('dnd_stop.vakata', function (e, data) {
        var t = $(data.event.target);
    );
    

    ad2)我不知道

    在版本1+中,我发现它是这样的:

    $("#tree").bind("move_node.jstree", function (e, data) {
        var idMoveElement = data.rslt.o.attr('id');
        var idTargetElement = data.rslt.r.attr('id');
        var where = data.rslt.p;
    }
    

    非常简单......但在版本3+中我不知道。

    你能帮助我吗?

    谢谢。

1 个答案:

答案 0 :(得分:0)

我的解决方案:

$('#tree_structure').bind('move_node.jstree', function (e, data) {

    if(data.parent !== '#') {
        var infoAfterDnd = getTargetElementAndWhere(data);
        if(infoAfterDnd .target.length > 0 && infoAfterDnd.where !== '') {
            console.log(infoAfterDnd);
        }
    }

});

getTargetElementAndWhere = function(data) {
    var where = '';
    var $parent = $('#' + data.parent);

    var $target = $('li:nth-child(' + data.position + ')', $parent);

    if($target.length > 0) 
        where = 'after';
    else {
        where = 'inside';
        $target = $parent;
    }   

    return { where: where, target: $target };
},