将元素附加到 child 会触发 parent 中的放置事件

Appending an element to the child fires the drop event in the parent

我对 jquery 的拖放行为有点困惑。 请检查 this fiddle:

我正在尝试检查可拖动元素是否已放入列表 (child) 或 div (parent)。如果我评论追加调用,它工作正常。 我尝试在 parent 的事件处理程序中插入 greedy option in the child and checking the event.target,但它总是出现 event.target=the parent

为什么要绑定 droppable 小部件两次?删除以下 widget

$("div.ui-droppable").droppable({
    greedy: true,
    drop: function (event, ui) {
        printEventReceiver("parent",event)
    }
})

并且,改变

$("ul.ui-droppable").droppable({

$(".ui-droppable").droppable({

基本上,greedy 标志仅在一个 widget 初始化的上下文中起作用。因此,最好使用一些常见的 class 初始化 widget 一次,并尽可能删除重复的初始化。

在这里查看:https://jsfiddle.net/scorpy2007/yu0pontg/23/