【发布时间】:2023-03-09 08:16:01
【问题描述】:
我有一个可放置的容器,其中还包含可排序的元素。这两个组件不相关,但可排序容器必须位于可放置容器内才能使设计工作。
我的问题是,当我重新排列可排序元素时,它会触发与将可拖动元素拖到其上时相同的可放置事件。
这个 jsFiddle 演示了这个问题:http://jsfiddle.net/48tmyLeb/2/
到目前为止,我找到的唯一解决方案是在可放置事件中执行检查,以确保放置的元素是可拖动类型的。但是,这并不理想,因为可排序仍会触发不透明度更改。
$('.droppable-container').droppable({
snap: true,
hoverClass: 'droppable-hover',
drop: function (event, ui) {
// Ignore droppable events triggered by sortable
if (ui.draggable.hasClass('my-sortable-element')) {
return;
} else {
// Do something
}
}
});
...我想一定有比这更好的方法。有人解决了吗?
编辑:感谢@Twisty 提供解决方案。对我来说,我只需要在创建 droppable 时指定 accept 选项:
$('.droppable-container').droppable({
accept: 'tr',
...
});
【问题讨论】:
-
可能会考虑为您的 droppable 使用
accept选项。
标签: jquery jquery-ui jquery-ui-sortable droppable