JQuery show() 在 click() 后不工作

JQuery show() not working after click()

我在网页中有下一个脚本 show/hide 内容取决于用户想要看到的内容。 一开始显示所有 div,但我希望用户按语言过滤。

$(document).ready(function() {

    $('#all').click(function() {
        $(".spanish").show();
        $('.english').show();
        $('.french').show();
    });

    $('#english').click(function() {
        $('#english').addClass("current");
        $('.spanish').hide();
        $('.english').show();
        $('.french').hide();
    });

    $('#spanish').click(function(){
        $('.spanish').show();
        $('.english').hide();
        $('.french').hide();
    });

    $('#french').click(function() {
        $('.spanish').hide();
        $('.english').hide();
        $('.french').show();
    });
});

过滤器是按钮,部分是 <divs>。 按钮有带有语言名称的 id,div 部分有带有语言名称的 class。 我尝试了很多方法,例如 document.getElementByClassName() 和警报,但看起来 jquery 在单击后无法识别函数 hide()show()。 它显示 "Uncaught TypeError: undefined is not a function" error in the console.

我认为这与多个 ID 有关 problem.Please 请再次检查您的代码。 放一个alert检查是否是jquery冲突。

否则 尝试使用 $(".spanish").css('dispaly','none');$(".spanish").css('dispaly','block');

您的站点上加载了 jquery 的 3 个版本,这可能是导致此问题的原因。

我建议保留 google 托管版本 jquery 并删除另外两个:

<script src="js/jquery-migrate-1.1.1.min.js"></script>

<script>
    window.jQuery || document.write('<script src="js/jquery-1.9.1.min.js"><\/script>')
</script>

google 托管版本具有 CDN 驱动的额外优势,可让您的用户更快地下载。

如果您的网站上只有一个版本的 jquery 运行,您应该不会再看到这些问题。如果由于某种原因您无法删除这些额外的 jquery 库,您可以将所有 $ 更改为 jQuery

例如:

$('.english').show()

变为:

jQuery('.english').show()