どちらもドロップ可能なネストされた div が 2 つあります。内部 div の内容に基づいて、accept プロパティを介して要素のドロップを許可するかどうかが決定されます。そうすることで、内側のドロッパブルでの重複を防ぎます。
問題は、内側の div 内で accept プロパティが false に設定されている場合、イベントが親にバブルされることです。親はドロップを受け入れますが、それはまさに私が望んでいないことです。複雑な要因の 1 つは、accept 関数の引数がドロップされたノードのみで構成されていることです。実際のイベント オブジェクトへの参照がないため、伝播を停止できません :(
したがって、大きな問題は、子の accept プロパティが false と評価された場合、親のドロップ可能オブジェクトへのイベントの伝播を防ぐことができるかということです。
コード:
$(node).droppable({
tolerance: "intersect",
accept: function(nodes) {
//if acceptPM evaluates to false the event is bubbled which I don't want
return acceptPM(nodes);
},
greedy: true,
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
drop: function(event, ui) {
//do something
}
});