2012-04-01 10 views
0

jqueryの位置指定(my、at、of)を使用して、divを一種の「ドロップダウン」ボタンとして表示しています。以下のコード:ドロップダウンDIVが表示されている間移動できる要素に対するJqueryの位置付け

if ($('#myDiv').is(':hidden')) { 
    $('#myDiv').show().position({ 
     my: "left top", 
     at: "left bottom", 
     of: $("#myButton"), 
     "offset" : "0 -2px" 
    }); 

} else { 
    $('#myDiv').hide(); 
} 

ボタン(例えば、他のコンテンツを動的に追加/削除取得、周りにボタンを押す)移動することができます。この問題が発生すると、ボタンだけが動き、divはそのまま残ります。したがって、divはボタンに対して正しく配置されなくなります。ここで

は、例えば、フィドルです:http://jsfiddle.net/2BUZU/

div要素は、常にボタンをたどる持っている素敵方法はありますか?

私はこの問題に遭遇する唯一の人ではないと確信していますが、私はこの問題に対する答えを見つけることができません。

ありがとうございます!

+0

デモを投稿できますか? – Joseph

+0

divの位置は相対 – Chibuzo

+0

でなければなりません。また、Chibuzo、私は相対的な位置に変更しようとしましたが、他のコンテンツの上に表示されるようにドロップダウンリストが必要なので、私はそれが動作するとは思わない - 私はあなたを誤解しない限り? –

答えて

1

私はコンテナdivとアニメーション機能を追加することでこれを実現しました。これはあなたが後にしているソリューションの一種であるかどうかわからない...

jsFiddle DEMO

はそれが役に立てば幸いください!

第二の提案
myButton要素のposition()を見つけ、適切myDivを移動します。

は、私はあなたがポジションを使用して達成するために必要なものを達成し、機能をアニメーション化することができます感じているjsFiddle DEMO 2

を参照してください。

もう一度、あなたのソリューションにもう少し近づけば幸いです。

+0

ありがとうneo108。それは私のためにはうまくいきません。何らかの理由でボタンが動くことに基づいて動作するものが必要です。ページ上の他のコンテンツが追加/削除されています。それにもかかわらず、それは有用な例です! –

+0

私は、あなたがポジションとアニメーション機能を使用して達成するために必要なものを達成できると感じています。上記の私の2番目の提案を見てください - それを追加する答えを編集しました。 – neo108

+0

2回目のデモのおかげで、neo108。しかし、それはdivの再配置はまだクリック(より良い簡潔なコード!)より多くのコンテンツを追加することによって引き起こされるようだ。 –

0

私はドロップダウンリストを常に自動的にそのボタンに従いたいと思いますが、私の場合は簡単な方法ではないようです。私はボタンが時間の90%動く原因を知っているので、私はこれをトリガしているときに、その時点でdivを再位置決めしています。それで今は十分に機能します。ヒントの人々のためにありがとう。

関連する問題