【发布时间】:2017-04-27 11:14:02
【问题描述】:
我有一个应用了 HTML 可拖动的 div,以及一个应用了 jquery UI droppable 的容器。 问题是当我拖动我的 HTML div 并经过可放置容器时,容器的可放置容器不起作用。 我不能使用 HTML droppable 事件,因为我需要在可拖动事件出现时触发,out,enter 事件,out 和 enter,在 HTML droppable 的情况下,它不起作用。 (它考虑的是鼠标指针,而不是拖动元素)。
HTML
HTML 可拖动:
<div draggable="true" (dragstart)="handleDragStart($event)" (dragend)="handleDragEnd($event)"></div>
Jquery droppable 的 HTML :
<div class="large-container">
<div class="column-cell dynamically-created-div"></div>
<div class="column-cell dynamically-created-div"></div>
<div class="column-cell dynamically-created-div"></div>
...n number of droppable cells
</div>
JS
$('.column-cell').droppable(
{
tolerance: 'touch',
out: function (event: any, ui: any) {
let columnId = $(event.target).data('columnid');
console.log('out from ', columnId);
},
over: function (event: any, ui: any) {
let columnId = $(event.target).data('columnid');
console.log('Over on ', columnId);
},
drop: (event: any, ui: any) => {
let columnId = $(event.target).data('columnid');
console.log('dropped to ', columnId);
}
}
);
【问题讨论】:
-
建议添加
accept选项。 -
还有很多这似乎不是 JavaScript。参数语法看起来不正确,
=>不是语法的一部分。let也较旧。 -
你读过这个吗:forum.jquery.com/topic/…
-
到目前为止,我可以看到可拖动元素不是jQuery对象,我认为droppable因此不愿意接受它。想看看两者能不能混在一起。您不使用可拖动和可放置是有原因的吗?