2012-03-18 6 views
0

普通のjQuery UIをソート可能なので、要素をドロップするdivを選択する必要があります。私は通常、受信したイベントでui.item.parent( 'div')を使ってこれを取得します。jQuery UIのソート可能な項目を使用して、項目がホバー上にドラッグされているdivを選択する方法

しかし、オーバーイベントでは、その変数がホバーオーバーしているものではなく、ドラッグされた場所の要素の送信者に関連しています。では、要素を削除する場所をどのように選択するのですか。

私は親要素のオフセット印刷した瞬間に持っている例:

$(".connectedSortable").sortable({ 
    over:function(event,ui){ 

     console.log(ui.item.closest('div').offset()) 
}, 
connectWith: ".connectedSortable" 
}).disableSelection(); 

編集:私は私がやっているかを示すために、本当に簡単な例を作成し

http://jsfiddle.net/2Zbwc/4/

基本的に、最初のテーブルの行を次のテーブルにドラッグすると、コンソールでoffset.leftが0であることがわかります。私は新しいテーブルのオフセットを残す必要があります。

+0

私たちはあなたが作業しているかを確認できるように、[デモ](http://jsfiddle.net/)を供給することはできますか? –

答えて

3

プレースホルダを使用して、プレースホルダクラスの親を選択できます。

http://jsfiddle.net/BnZMA/

$(".sortable").sortable({ 
    connectWith: '.sortable', 
    helper: 'clone', 
    placeholder: "placeholder", 
    over:function(event,ui){ 
     console.log($('.placeholder').parent().attr('id')); 
    }, 
}); 
+0

ありがとうございました。とにかくプレースホルダは正確に何がうまく機能しているようですか? – oracal

+0

ソート可能な項目を新しい場所にドラッグすると、他の項目はその項目の間に空白を入れるように移動することでその項目のためのスペースを確保します。スペースを表示するようにスタイルを設定するには、クラスをプレースホルダオプションに渡します。ブーリアンのforcePlaceholderSizeオプションを使用して、プレースホルダのディメンションを設定します。 (http://jqueryui.com/demos/sortable/#placeholder) – Alex

+0

乾杯、まさに私が必要なもの。 – oracal

関連する問題