私はナビゲーション メニュー編集インターフェイスを作成しています。サブメニューを展開する上にマウスを置いたシンプルなマルチレベル メニューがあります。
<nav>
<ul class="sortable1 connectedSortable">
<li class="droppable"><a href="#">Menu Item 1</a></li>
<li class="droppable"><a href="#">Menu Item 2</a>
<ul class=" sortable2 connectedSortable">
<li><a href="#">Submenu Item 1</a></li>
<li><a href="#">Submenu Item 2</a></li>
<li><a href="#">Submenu Item 3</a></li>
</ul>
</li>
<li class="droppable"><a href="#">Menu Item 3</a></li>
<li class="droppable"><a href="#">Menu Item 4</a>
<ul class=" sortable2 connectedSortable">
<li><a href="#">Submenu Item 4</a></li>
<li><a href="#">Submenu Item 5</a></li>
<li><a href="#">Submenu Item 6</a></li>
</ul>
</li>
<li class="droppable"><a href="#">Menu Item 5</a></li>
</ul>
</nav>
私が欲しい機能は、サブメニューから項目をドラッグするとサブメニューが非表示になり、サブメニューのある項目にドラッグするli
と開くことです。
$(".droppable").hover(
function () {
$("ul", this).slideDown(100);
},
function () {
$("ul", this).slideUp(100);
}
).droppable({
tolerance: 'intersect',
over: function(event, ui) {
if($(ui.draggable).parent() !== $(this)){
$(ui.draggable).appendTo($(this));
}
$("ul", this).slideDown(100);
},
out: function(event, ui) {
if($(ui.draggable).parent() !== $(this)){
$(ui.draggable).appendTo($(this));
}
$("ul", this).slideUp(100);
}
});
問題は、jQuery UIの並べ替え可能なover:
メソッドを使用するli
と、サブメニューで にカーソルを合わせると、サブ メニューが開いているのに、アイテムを にul
移動すると、トップからの移動がli
トリガーされるため、サブ メニューが閉じてしまうことです。out:
メニューを閉じるために設定したメソッド。
ul
ドラッグ可能なものを親の外に移動した後、開いたままにするにはどうすればよいli
ですか?