1

わかりました、私はこれに対する答えを探していました(もしあれば)運がありません

次の図に示すように、一連のdiv要素があります。

http://i61.photobucket.com/albums/h46/DrAcOliCh_2006/untitled-1.jpg?t=1300520458

青い背景は、兄弟でもあるオレンジ色のdivの絶対的な親です。

オレンジ色の要素はすべてドラッグ可能であり(jquery UIを使用)、親内で移動したため、DOMはページにどのように表示されるかによって完全に整理されていませんが、一部の人が知っているように、DOMは再編成されません。ドラッグ可能な要素を移動するので、基本的に兄弟の構造はDOM内で同じままです

私がちょっと必要としているのは(それが可能であるとしても)、ページ上のすぐ隣の兄弟を決定することです。つまり、ページ上で「Logo」、「Search」、「ShoppingBasket」要素をすぐ上の兄弟として、「Categories」要素と「Content」要素をすぐ下として持つ「FlashBanner」要素を取り上げるとします。兄弟(および左または右の兄弟なし)

私はこれに対する手動の解決策を持っています、それは一連のフォームフィールドやもの(説明する別のストーリーと別のテキストの壁)を通して各要素のページ上の隣接する兄弟を事前に指定することですが、それは私として重要ではありませんそれが自動的に実行できるかどうかを知りたい(つまり、jqueryにそれらを見つけるように指示する)

「自動的に行うことはできません」と言っても、助けてくれてありがとう。

これが曖昧に聞こえないことを願っています(またはそのことについてはばかげています)そしてなぜ私がそれをする必要があるのか​​:Pテキストの壁に説明を求めないでください

乾杯 :)

4

1 に答える 1

0

draggable-ui を使用して物を移動すると、実際には DOM 自体が変更されることを明確にしたかっただけです。

そのため、探しているものを見つけるのに役立つかもしれません。

次のようなことができます:

$('#flashbanner').prev()  // For previous siblings

または、すべての div を反復処理します。

$(#blue).find('div').each(function(){
  $(this).blahblah  // current div
});

または、以前のすべての兄弟を繰り返し処理して、高さなどを探します。しかし、これは最後の手段にする必要があります...

$('#flasshbanner').prevAll().each(function(){
  var height = $(this).height();
  if(height == blahblah){
    //do stuff
  }
});

しかし、重要なのは DOM です。何かを移動すると移動するため、何が起こるかを知っていれば、jQuery を使用して「自動的に」見つけることができます。Firefox プラグインの FireBug を使用すると、新しい DOM を移動する際に確認することができます。(ほとんどの Web 開発者は、FireBug の純粋な輝きのために、開発中に FireFox を使用していると思います)

コードをhttp://jsfiddle.net/にアップロードしてみると、実際のソース コードについてさらに支援できます。:)

頑張ってください。

于 2011-03-21T08:32:55.247 に答える