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>

尽管它们有不同的变体。所以一个可能是标题为真并显示面孔为真,唯一的类将是“.h-t_dsf-t”。javascript 应该在它们之间进行选择并告诉哪个是活动的,哪个不是活动的。所以一次只有一个有 .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

您包含的代码有一些问题。当你删除一个类或添加一个类时,你不应该包括句号。.您已在.hasClassremoveClass和上执行此操作addClass

此外,您的条件陈述似乎是矛盾的。也许您实际上是想说的话,但我假设包含类的元素.sf-yes.sh-no两个不同的元素。您的 jQuery 语句正在寻找具有这两个类的元素。

使用类的选择器也不是最佳实践,您应该使用唯一的 id,例如#sf-yes. 或者,如果您必须使用多个类选择器,则在函数调用开始时将每个选择器分配给一个变量。

最后,我认为您不应该将此标记为 Facebook 问题,因为您的代码专门针对 jQuery。

于 2012-11-23T23:57:26.077 回答