Впервые я поигрался с sortable
(с небольшим чтением на jqueryui.com), но я думаю, что это должно сработать. Вы можете увидеть это в действии на следующем jsFiddle
HTML:
<ul class="master"></ul>
<ul class="sub a">
<li class="a">Foo</li>
<li class="a">Boo</li>
</ul>
<ul class="sub b">
<li class="b">Bar</li>
<li class="b">Baz</li>
</ul>
JQuery:
$(document).ready(function(){
// create sortables
$( ".master,.sub" ).sortable({
connectWith: ".master,.sub",
revert: true,
receive: function(event, ui) {
// only perform for sub drop downs
if ($(this).hasClass('sub'))
{
// if the item doesn't have the matching sub class
if (!$(this).hasClass($(ui.item).attr('class')))
{
// cancel the sortable
$(ui.sender).sortable('cancel');
}
}
}
}).disableSelection();
});
Этот пример в основном выполняет проверку при получении предмета, и если он не проходит, он отменяет ход.
Надеюсь, это то, что вы ищете.