0

ここで問題が発生しています。これは機能しているはずです...私はこのように見えるhtmlの4つの要素を持っています

    <!-- Light Color Scheme - Header False and Show Faces True -->
        <div class="fb-like-box h-f_dsf-t visible" data-href="http://www.facebook.com/pages/Alpine-Adaptive-Scholarship-Program/344942928870040?fref=ts" data-width="292" data-show-faces="true" data-stream="true" data-header="false" colorscheme="light"></div>

それらは異なるバリエーションにありますが。したがって、ヘッダーがtrueで、顔がtrueであることがわかり、一意のクラスは「.h-t_dsf-t」になります。javascriptはそれらの間を選択し、どちらがアクティブでどちらがアクティブでないかを示す必要があります。したがって、一度に1つだけが.visibleクラスを持ち、他は.invisibleクラスを持ちます。

前もって感謝します!

[顔を表示]ボタンのJavascript (.sf-no.clickにはまだ何も含まれていませんが、将来的には、最初に[はい]ボタンで機能させようとしていました)。

// Show Faces
$(document).ready(function() {
    $('.sf-yes').click(
        function() {
            $('.sf-yes').removeClass('btn-not-active btn-active').addClass('btn-active');
            $('.sf-no').removeClass('btn-not-active btn-active').addClass('btn-not-active');
            // Show Faces Yes &&& Show Header No
            if ($('.sf-yes.sh-no').hasClass('.btn-active')) {
                $('.h-f_dsf-t').removeClass('.invisible').addClass('.visible');
                $('.visible').removeClass('.visible').addClass('.invisible');
            }
            // Show Faces Yes &&& Show Header Yes
            if ($('.sf-yes.sh-yes').hasClass('.btn-active')) {
                $('.visible').removeClass('.visible').addClass('.invisible');
                $('.h-t_dsf-t').removeClass('.invisible').addClass('.visible');
            }
            // Show Faces No &&& Show Header Yes
            if ($('.sf-no.sh-yes').hasClass('.btn-active')) {
                $('.visible').removeClass('.visible').addClass('.invisible');
                $('.h-t_dsf-f').removeClass('.invisible').addClass('.visible');
            }
            // Show Faces No &&& Show Header No
            if ($('.sf-no.sh-no').hasClass('.btn-active')) {
                $('.visible').removeClass('.visible').addClass('.invisible');
                $('.h-f_dsf-f').removeClass('.invisible').addClass('.visible');
            }
        }
    );
    $('.sf-no').click(
        function() {
            $('.sf-no').removeClass('btn-not-active btn-active').addClass('btn-active');
            $('.sf-yes').removeClass('btn-not-active btn-active').addClass('btn-not-active');
        }
    );
});
4

2 に答える 2

4

.hasClass('.btn-active')

する必要があります

.hasClass('btn-active')

ドットなし.

于 2012-11-23T23:47:33.610 に答える
2

含まれているコードにいくつか問題があります。クラスを削除したり、クラスを追加したりするときは、フルストップを含めないでください。、、、およびで.これを実行しました。.hasClassremoveClassaddClass

さらに、条件文は矛盾しているようです。おそらくあなたは実際にあなたが言うことを意味しますが、私はクラスを含み、2つの異なる要素である要素を想定してい.sf-yesます.sh-no。jQueryステートメントは、これら両方のクラスを持つ要素を探しています。

また、クラスを使用するセレクターがベストプラクティスではないため、などの一意のIDを使用する必要があることも意味がありません#sf-yes。または、複数のクラスセレクターを使用する必要がある場合は、関数呼び出しの開始時にそれぞれを変数に割り当てます。

最後に、あなたのコードは特にjQueryに関するものなので、これをFacebookの質問としてタグ付けするべきではないと思います。

于 2012-11-23T23:57:26.077 に答える