#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