简体   繁体   中英

jQuery JsTree version 3+ plugin DND

Where can I get information after drag:

  1. Target element
  2. Where was the moving element included (inside, after, before)

ad1) I found target element like this:

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

ad2) I do not know

In version 1+ I found it like this:

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

pretty easy... but in version 3+ I do not know.

Can you help me?

Thank you.

My solution:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM