私は次のものを持っています:
$(".subject-box").droppable({
// revert: "invalid",
activeClass: 'subject-box-active',
hoverClass: 'subject-box-hover',
accept: ".subject-box, .class-box",
tolerance: 'intersect',
drop: function (event, ui) {
dropItem(ko.dataFor(ui.draggable.context), ko.dataFor(this));
setTimeout(function () {
$('#container').isotope('remove', ui.draggable);
}, 0);
}
});
.subject-box
そのため、またはの css クラスを持つものはすべて受け入れ、アイテムがドロップされたときに.class-box
呼び出します。dropItem
ドロップアイテムはここにあります:
var dropItem = function(item, parent) {
// do some evaluation of the item (dragged) and parent (accepts item being dragged)
// possible cancel based on values of item or parent
return;
};
これにより、item
andparent
オブジェクトにアクセスできるようになるため、評価を実行できます。これは期待どおりに機能していますが、親オブジェクトの一部のプロパティ (特に auth 関連のプロパティ) が true の場合は、ドロップ アクションをキャンセルする必要があります。
内からドロップ アクションをキャンセルするか、親アイテムと子アイテムにアクセスしてそこで評価を実行するにはどうすればよいdrop:
ですaccept:
か?