1
给定一组可排序/可拖放的容器,其中每个包含可拖放/可排序的列表项目,但如果不允许拖动事件(一个或多个)直至父容器?为jQueryUI中的嵌套可排序项目禁用拖动冒泡
在下面的示例中,如果在“项目3(禁用)”上拖动,则父容器将成为拖动目标。它应该仍然是可拖动的,但只能在内部项目之外。
<script>
$(function() {
$('.sortable').sortable({
items: '.draggable'
});
$('.sortable').disableSelection();
});
</script>
<ul class="sortable outer">
<li class="outer-item draggable">
<ul class="sortable">
<li class="inner-item draggable"></span>Item 1</li>
<li class="inner-item draggable"></span>Item 2</li>
<li class="inner-item"></span>Item 3 (Disabled)</li>
</ul>
</li>
<li class="outer-item draggable">
<ul class="sortable">
<li class="inner-item draggable"></span>Item 4</li>
<li class="inner-item draggable"></span>Item 5</li>
<li class="inner-item draggable"></span>Item 6</li>
</ul>
</li>
</ul>
https://codepen.io/jneander/full/NRNZqL/
这样做的副作用轻微地拖动元素的位置,因为在停止之前暂时发生拖动。 – jneander
它也可能是由于一些内部未被清理的状态导致的DOM定位奇怪的事情。 – jneander
通过此更新,原始代码在行为上没有任何变化。无论是以编程方式还是静态方式禁用相关元素,似乎都不起作用。父级仍然通过disabled元素接收拖动事件。 – jneander