0

これに対する簡単な解決策があることを望んでいますが、すぐにはわかりません。

クラスmyClassを持つすべてのdivを選択しようとしていますが、クラスmyClassを持つ子を含む、そのクラスのすべての子を無視します。例えば:

<div class="myClass"> //select
    <div class="myClass"> //don't
      <div class="myClass"></div> //don't etc
    </div>
</div>
<div class="myClass"></div>
<div class="myClass">
     <div class="myClass"></div>
</div>
<div class="myClass"></div>

これは奇妙な状況だと思います。これは、サイドディビジョンでスライドするときにGoogleマップ全体でマップコントロールをスライドさせる必要があるためです(カバーしないようにするため)。変更する必要のあるクラスはすべて「gmnoprint」という名前であり、子が無視されない場合、親内の要素は、ネストの各レベルに必要な量の2倍だけ移動されます。

私の現在の解決策(もっと悪いハック)は、次のように呼び出すことです:

$('div.gmnoprint').stop().animate({ 'marginLeft': '418px' }, 800);
$('div.gmnoprint').children('div.gmnoprint').stop().animate
    ({ 'marginLeft': '0px' }, 800);

しかし、これはひどく非効率的で、プロセッサを集中的に使用します。

これが重複している場合はお詫びしますが、類似したものは見つかりませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

3
$('div.gmnoprint')
    .filter( function() {
        return $(this).parent().closest('div.gmnoprint').length === 0;
    })
    .stop()
    .animate({ 'marginLeft': '418px' }, 800);
于 2013-02-06T13:09:06.903 に答える
0

これらのdivはすべて、ある種の別のコンテナ内に存在する必要があります。IDがであると仮定した場合は、次のcontainerように呼び出します。

$('#container').children('div.gmnoprint').stop().animate({ 'marginLeft': '418px' }, 800);

これは1レベルだけ深くなりdiv.gmnoprint、ページ上のすべての要素を選択するわけではありません。

于 2013-02-06T13:10:41.520 に答える