右 - Fx.Sort の実装との互換性を維持し、必要に応じて並べ替えを維持するのは難しいです。クリックされた項目のいずれかが一番上に移動してから展開される実際の例を次に示します。
http://jsfiddle.net/dimitar/FcN32/
あなたに固有:
Fx.Sort.implement({
adopt: function(el, pos) {
if (!this.element)
this.element = this.elements[0] && this.elements[0].getParent();
var len = this.currentOrder.length;
pos = (pos !== null && typeof pos === 'number')
? this.currentOrder.contains(pos) ? pos : len
: len;
this.elements.include(el);
if (pos === len) {
// don't care, attach to bottom.
el.inject(this.element);
this.currentOrder.push(this.elements.indexOf(el));
}
else {
// we are injecting at a particular place in the order
el.inject(this.elements[pos], "before");
var newOrder = this.currentOrder.slice(0, pos) || [];
newOrder.push(this.elements.indexOf(el));
this.currentOrder = newOrder.combine(this.currentOrder.slice(pos));
}
if (el.getStyle('position') == 'static') el.setStyle('position', 'relative');
this.rearrangeDOM();
}
});
instance.adopt(someel, <optional pos>)
これは、 pos がリスト内の数値位置である場合のように呼び出されています。省略した場合は末尾に追加されます。それが役に立てば幸い...