項目を別のアコーディオンからドラッグしてアコーディオン コントロールに追加することはできますか?
- という名前のアコーディオンを作成しました
MainAccordion
- という名前の別のアコーディオンを作成しました
MenuAccordion
MenuAccordion
アイテムを からにドラッグしたいMainAccordion
項目を別のアコーディオンからドラッグしてアコーディオン コントロールに追加することはできますか?
MainAccordion
MenuAccordion
MenuAccordion
アイテムを からにドラッグしたいMainAccordion
少しコーディングする必要があるかもしれませんが、これは可能です。私はあなたのためにフィドルを作りました:http://jsfiddle.net/LfaRk/1/
それを見てみましょう。HTML は、CSS と同じように単純です。
JavaScript:
$(function () {
$("#catalog").accordion();
$("#catalog2").accordion();
$("#catalog h2").draggable({
appendTo: "body",
helper: "clone"
});
$("#catalog2").droppable({
drop: function (event, ui) {
var content = ui.draggable.next();
ui.draggable.draggable('disable').appendTo(this);
content.appendTo(this);
$("#catalog").accordion('destroy').accordion();
$("#catalog2").accordion('destroy').accordion();
}
});
});
それで、私は何をしているのですか?
.accordion()
ます。(私が始めたコードはhttp://jqueryui.com/droppable/#shopping-cartです。あなたもチェックしてください)
2 番目のアコーディオンのドロップ コールバックを見てみましょう。
drop: function (event, ui) {
var content = ui.draggable.next();
ui.draggable.draggable('disable').appendTo(this);
content.appendTo(this);
$("#catalog").accordion('destroy').accordion();
$("#catalog2").accordion('destroy').accordion();
}
ここで何が起きてるの?
はui.draggable
、現在ドラッグされている jQuery でラップされた要素です。2 番目のアコーディオンに挿入する必要があります。したがってui.draggable.appendto(this)
、 を呼び出すことはできますが、ドラッグ可能のままなので、ドラッグ不可にする必要もあります。
ヘッダーを使用してコンテンツを移動する必要があるため、: でコンテンツを選択してから、:var content = ui.draggable.next()
で移動しますcontent.appendTo(this);
。this
まだドロップ可能な要素です (2 番目のアコーディオン)。
最後に、要素がどこにあるかを認識できるように、アコーディオンを再初期化する必要があります。
$("#catalog").accordion('destroy').accordion();
$("#catalog2").accordion('destroy').accordion();
そして、それは準備ができています。
アイテムを前後にドラッグできるようにしたい場合は、もう少しコーディングする必要があるかもしれません。また、アコーディオンをソート可能にしたい場合、ドロップ可能とソート可能は面白い方法で相互作用するように見えるので、少し実験する必要があるかもしれません.