0

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

次のスクリプトは、div の状態に応じて異なる背景を示しています。

展開されていない場合は「プラス (+)」記号が表示されますが、展開されている場合は背景画像がありません (何も表示されません)。

問題は、一度しか機能しないことです。

(.mix 値により Div が拡張され、.meta クラスが別の背景に切り替わります)。

どんな手掛かり?

Jquery コード:

$(document).ready(function() {
    $('.meta').click(function() {
      $(this).css('background', 'none');
        });     
          $('.mix').click(function(){
            var collapse_content_selector = $(this).attr('href');
            var toggle= $(this);
            $('.meta').click(function() {
             $(this).css('background', 'url(images/arrow_down.png) no-repeat scroll 95% 97% transparent');
            });                         
            $(collapse_content_selector).toggle(function(){
            });


            $('.meta').click(function() {
      $(this).css('background', 'none');
        });     
          });
        });

ありがとうございました!

4

1 に答える 1

0

あなたのコードは複雑すぎるように見えます。あなたが探しているのはこれだと思います:

$('.mix').click(function() {
    var c = $(this).children();
    c.filter('.meta').toggleClass('background');
    c.filter(':last').toggle(function() {});
});

background次に、 class を使用して要素に画像を追加するeg という CSS クラスを作成できます.meta

説明

親要素をクリックすると常にコンテンツが切り替わるため、この要素にイベント ハンドラーをアタッチできます$('.mix').click();。この要素の子は常に同じなので、それらを選択しますvar c = $(this).children();。ここで、クラスを持つ子の「+」記号を切り替えたいとしますmeta。この要素を取得するには、子をフィルタリングし、結果でクラスを切り替えますc.filter('.meta').toggleClass('background');。最後に、コンテンツを切り替えます。コンテンツは常に最後の子です。したがって、それも単純にフィルタリングして、関数を適用しますc.filter(':last').toggle(function() {});

デモ

購入前にお試しください

于 2013-09-05T06:45:27.173 に答える