2011-07-22 1 views
0

私は検索をいくつか行いましたが、これに対する答えを見つけることができませんでした。また、コードを無駄に使いこなしました。私は標準のjQuery UI draggableとdroppableセットアップが動作します。jQuery Droppable Elementsを最後に削除することで注文します。

ただし、アイテム(この場合は靴)をドロップ可能なターゲットエリアにドラッグすると、追加されたように見えるので、古いアイテムは前面に残り、新しいアイテムが最後に追加されて表示されなくなります。

ソート可能なアイテムを追加するのではなく、自分のターゲットの前に置く方法がありますか?

編集**

var proto = $.ui.droppable.prototype; 

proto._create = function() { 

    console.log('Calling the create method'); 

    var o = this.options, accept = o.accept; 
    this.isover = 0; this.isout = 1; 

    this.accept = $.isFunction(accept) ? accept : function(d) { 
    return d.is(accept); 
    }; 

    //Store the droppable's proportions 
    this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; 

    // Add the reference and positions to the manager 
    $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; 
    $.ui.ddmanager.droppables[o.scope].unshift(this); 

    (o.addClasses && this.element.addClass("ui-droppable")); 
}; 
+0

ドラッグアンドドロップ可能で、あなたは 'drop'でどのような行動が取られるのかを制御します。あなたはソート可能だと言います - それはあなたが使っているウィジェットですか?任意のコードを投稿する可能性がありますか? –

+0

こんにちはAndy、私は恐れて投稿するコードは実際にはありません。私は基本的に、jQuery UIの要素を追加するのではなく、追加可能な要素の前に追加する方法を尋ねています。 AlienWebGuyはすばらしい答えを投稿しました。jQuery UIで_createメソッドをオーバーライドする方法を知る必要があります。 –

答えて

2

はい、それはかなり複雑だけれども。 _create関数を変更するJQueryUI ui.droppableオブジェクトを拡張する必要があります。現在、それはそうのように、配列の末尾に新しいアイテムを追加するためにプッシュを使用しています。

$.ui.ddmanager.droppables[o.scope].push(this);

あなたがアンシフトを使用することをお勧めします:

$.ui.ddmanager.droppables[o.scope].unshift(this);

jQueryのドロップ可能なソースを: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.droppable.js

JavaScript unshift()ドキュメント:http://www.w3schools.com/jsref/jsref_unshift.asp

JQueryUIウィジェットを拡張するためのチュートリアル:http://bililite.com/blog/extending-jquery-ui-widgets/

+0

素晴らしいです、ありがとうございます。 GoogleのCDNのjQuery UIライブラリ全体を含めているので、コアの_createメソッドをオーバーライドするにはどうすればよいですか? –

+0

UIウィジェットを拡張する方法について説明した最後のリンク、I postedをチェックしてください。マスターコードに触れる必要はありません。単に機能をオーバーライドしてください:) – AlienWebguy

+0

私は使用しているコードで質問を更新します。何らかの理由で、droppableを無効にしても私にとってはうまくいかないようです。私はそれが間違っている単純なものだと確信しています!あなたの忍耐と助けをありがとうございます。 –

関連する問題