在dragEnd事件中的jqxtree拖动中获取Parent的Parent Id

时间:2014-01-04 10:30:48

标签: javascript jquery drag-and-drop jqxwidgets

enter image description here

我正在使用JQXTree,一个示例Html代码

<div id='treeA' style='float: left; margin-left: 0px;'>
<ul>
    <li id='home' item-selected='true'>Server</li>
        <li item-expanded='true'>Incoming Data
            <ul>
            <li>FTP Adapter</li>
            <li item-expanded='true'>RDBMS
            <ul>
                         <li draggable="true">ftpConnection1</li>
                         <li id='ftpConnection2'>ftpConnection2</li>
            </ul>
        </li>
    <li>NoSql Adapter</li>
    <li>RSS Adapter</li>
    <li>MQTT Adapter</li>
    <li>ZMQ Adapter</li>
    </ul>
   </li>
 </ul>
</div>

$('#treeA').jqxTree({ allowDrag: true, allowDrop: true,  theme: theme});

在图片中,如果我拖动 ftpConnection1 ,我需要获取FTP Adapter的父ID以及Incoming Data的父ID。

我在树上使用dragEnd事件

$("#treeA").on('dragEnd', function (item) {  
            console.log(item);
       var droppedToolId = item.args.owner._dragItem.id;
       var parentId = item.args.owner._dragItem.parentId;
});

所以我得到了家长ID,我需要获取我丢弃的项目的父母家长ID。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我希望你没有重复的ID  尝试

$("#treeA").on('dragEnd', function (item) {  
            console.log(item);
       var droppedToolId = item.args.owner._dragItem.id;
       var parentId = item.args.owner._dragItem.parentId;
       var Pid = $('#'+parentId).parent().attr('id');//get parent
       alert(Pid);
});

答案 1 :(得分:0)

试试这段代码:

$('#treeA').jqxTree({ allowDrag: true, allowDrop: true, height: '300px', width: '220px', 
                dragEnd: function (item, dropItem, args, dropPosition, tree) {
                    if (item.level != dropItem.level && item.parentId != dropItem.parentId)
                        return false;
                }   
                oldParentId = item.parentId;
                newParentId = dropItem.parentId;          
        });

希望这有帮助!