2009-12-01 20 views
8

私はアコーディオンウィジェットの中にドラッグ可能なオブジェクトを持っています。それをドラッグすると、その親であるアコーディオン要素が拘束されます。私は '封じ込め'オプションを使用しようとしましたが、成功しませんでした。jQuery-Ui:オブジェクトをアコーディオンの外にドラッグできない

私はそれを解決する方法はありますFireFoxの3.5.5およびクロム4.

でこれを試してみましたか?

おかげ

答えて

9

完全な例をお探しの方は、jQuery UIデモのShopping Cart exampleをご覧ください。これは流行の例ですが、何が尋ねられていたかを正確に示しています(アコーディオンの外にある要素をドラッグする)。

$(function() { 
     $("#catalog").accordion(); 
     $("#catalog li").draggable({ 
      appendTo: "body", 
      helper: "clone" 
     }); 
}); 

そしてそこから続けてください。

+1

問題なし、それを探している間にかなりの時間を費やして、誰かに同じ面倒を救うと思った。 – Laurence

+0

@Laurence +1これ。参照のためだけに、これはappendTo:$(#要素) – dekdev

1

あなたはcontainment value of 'document'を使用してみました:

$("#draggable1").draggable({ containment: 'document' }); 

をここに私はアコーディオンの外にドラッグすることができた例です:

<div id="accordion"> 
    <h3><a href="#">Section 1</a></h3> 
    <div id="draggable1"> 
    <p> 
     Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer 
     ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit 
     amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut 
     odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. 
    </p> 
    </div> 
    <h3><a href="#">Section 2</a></h3> 
    <div> 
     <p> 
     Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet 
     purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor 
     velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In 
     suscipit faucibus urna. 
     </p> 
    </div> 
</div> 

<script type="text/javascript"> 
$(function() { 
    $("#accordion").accordion(); 
    $("#draggable1").draggable({ containment: 'document' }); 
}); 
</script> 
+0

私はあなたの助けに感謝しますが、私は自分自身を明確にしていないのでしょうか?ドラッグ可能なオブジェクトはアコーディオン要素自体ではありませんが、その1つの内部にあります。 –

5

私の答えはsortablesに適用され、私は思いますdraggablesは似ているはずです。私は、デフォルトの 'orginal'の代わりに 'clone'を使用し、appendTo: 'body'を使って動作させることができました。それはあなたがappendTo: 'body'を設定すればよいと思うにもかかわらず、ヘルパーとしてオリジナルを使用するとヘルパーをボディに追加するように見えないので、変です。私はあなたがそれを働かせることを願っています!

+1

私はこれを{helper: 'clone'、appendTo: 'body'}オプションを使用して動作させることができました – lomaxx

3

$( ".selector").draggable試し({appendTo: '身体'})を、

+0

ドラッグ要素をテーブルから壊す方法をどこからでも探していました。これは私のために美しく働いた。ありがとうございました。 –

0

アコーディオンコンテナのオーバーフローモードが非表示に設定されているため、jQueryアコーディオン以外のアイテムをドラッグすることはできません。

1)オーバーフローを(インラインスタイルのオーバーライドによって)表示するように設定できますが、その場合はアコーディオン自体が機能しなくなることがあります。

<div id="simpleAccordion" style="overflow: visible;"> 

<h3>Header 1<h3> 
<div>...</div> 

<h3>Header 2<h3> 
<div>...</div> 

<h3>Header 3<h3> 
<div>...</div> 

</div> 
関連する問題