0

そのため、以下のこの関数を使用して、一度に 1 つの要素の背景を変更しています。とにかくここから取得したことを考えると、うまく機能していますが、クラスが追加された後に2番目または3番目の子をクリックすると、クラスが削除され、アクティブなクラスが第一子。

$(window).load(function(){
    $('.innernav li:first-child a').addClass('back');
});
$("a").click(function () {
    $('a').removeClass('back');
    $(this).addClass('back');
});

簡単に言えば、要素が 2 回目にクリックされたときに最初の子の規則に戻してほしいのです。このような理由は、私のサイトでは、クリックするとその下にコンテンツが表示されるためです。別の要素をクリックすると、新しいコンテンツが表示されて前のコンテンツが非表示になりますが、もう一度クリックすると、ページが最初に読み込まれたときに表示されていた元のコンテンツに戻ります。実際に何が起こっているのかをよりよく理解できるように、その関数をjsFiddleに含めます。jsFiddle で toggleDisplay を動作させることはできませんでしたが、正常に動作します。

4

1 に答える 1

0

クラス'back'が既に存在するかどうかを確認してください (つまり、リンクが以前にクリックされたことがある)。そうである場合は、first-child ルールに戻ります。

$(window).load(function(){
    $('.innernav li:first-child a').addClass('back');
});
$("a#bg").click(function(){
    var isSecondClick = $(this).hasClass('back');
    $('a').removeClass('back');
    if (isSecondClick) {
        $('.innernav li:first-child a').addClass('back');
    } else {
        $(this).addClass('back');
    }
});

あなたのフィドルが更新されました。

于 2013-06-22T23:13:46.283 に答える