scriptaculous.js(v1.8.1)を使ってソート可能なリストを実装しています。
Sortable.createでonChangeとonUpdateが拾えますが、
ドラッグの開始時と終了時に、onStartとonEndみたいなイベントも拾いたいんですが、うまくいきませんでした。
→ とりあえずdragdrop.jsに手を入れることにしました。
576: var SortableObserver = Class.create({ 577: initialize: function(element, observer) { 578: this.element = $(element); 579: this.observer = observer; 580: this.lastValue = Sortable.serialize(this.element); 581: }, 582: 583: onStart: function() { 584: this.lastValue = Sortable.serialize(this.element); // -> ここにドラッグ開始時の処理を書きます 585: }, 586: 587: onEnd: function() { 588: Sortable.unmark(); 589: if(this.lastValue != Sortable.serialize(this.element)) 590: this.observer(this.element) // -> ここにドラッグ終了時の処理を書きます 591: } 592: });
という感じで、一応機能としては動いていますが、あまりソースには手を入れたくないですね。。。
Draggableオブジェクト作成時にはstarteffectとendeffectが使えますが、Sortableには似たようなものがありますかね。。。