Как получить идентификатор родительского элемента из нескольких droppables с тем же классом?

#jquery #droppable

#jquery #droppable

Вопрос:

У меня есть древовидная структура папок…код для 1 блока, как показано ниже:

 <div level="1" class="tree-item " ispublic="false" hassubfold="true" isworkspace="0" foldid="3595517$$QC4ixP" dcid="1" proid="54445$$vnwCUD" id="fold_3595517$$QC4ixP">
    <div style="padding-left: 30px; float: none; width: auto;" class="tree-row   ui-droppable selected">
            <span class="openFolder"></span>
        <span class="tree-label">1001</span>
    </div>
    <div class="tree-children" style="display: block;">
        <div>
        <div level="2" class="tree-item " ispublic="false" hassubfold="false" isworkspace="0" foldid="3711515$$AhXpf3" dcid="1" proid="54445$$vnwCUD" id="fold_3711515$$AhXpf3">
        <div style="padding-left: 50px; float: none; width: auto;" class="tree-row  ui-droppable">
        <a style="visibility:hidden;width:20px;" rel="undefined" title="Expand" class="folder" href="javascript:void(0);"></a>
        <a rel="54445$$vnwCUD" class="docList ui-droppable" title="rrrr" href="javascript:void(0);">
        <span class="closeFolder "></span>
        <span class="tree-label">rrrr</span>
        </a>
    </div>
    <div class="tree-children"></div>
</div>
  

Мне нужно перетащить файл из списка с флажком и вставить .tree-row (дерево папок). Когда он удаляет общий файл, мне нужно получить идентификатор дерева-элемента, который я получаю через приведенный ниже код:

 event.target.parentElement.attributes['id'].value
  

Используя выше, я получаю несколько foldid div, содержащих .tree-item. Мне нужно получить идентификатор папки только для папки, в которую удален файл, который снова является вложенной папкой….

 function bindDragDropDocEvent(){    
    $(".tree-row").droppable({
        accept: '#fileContent .rows',
         tolerance: "touch", 

        drop:function(event,ui){
            event.stopPropagation();
            console.log(event);
            alert("dropped");
            var foldid = event.target.parentElement.attributes['foldid'].value;
            if(foldid!=0){
               foldid = event.target.parentElement.attributes['foldid'].value;  
               alert(foldid);
            }
         },
});

$("#fileContent .rows").draggable({
        cursor:'move',
        stop:function(event,ui){
            event.stopPropagation();
            var rowdata = ui.helper.find(':checkbox').data('rowValues');
            alert(rowdata.fileName);
         },
    });
}
  

Может кто-нибудь, пожалуйста, помочь в этом, чтобы получить только идентификатор удаляемой папки, а не ее родителя. Я использовал greedy:true, но не повезло !.

Комментарии:

1. вы должны попробовать console. регистрация $ (this) вокруг того места, где вы объявляете foldid. вы все равно используете jquery.. Пожалуйста, создайте JSFiddle для лучшей помощи

Ответ №1:

Я думаю, что ваш перетаскиваемый элемент затрагивает несколько divs, когда вы его отбрасываете, поэтому вы также получаете идентификатор родительского div. возможные решения:

  • удалить tolerance: "touch",
  • увеличьте заполнение на .tree-row