javascript - jQuery:隐藏功能无法正常工作?

标签 javascript jquery html hide

我正在 jQuery 中开发一个单页应用程序,其中将根据单击的按钮显示不同的按钮和选项。

我不明白为什么我的 hide() 函数不起作用。我将它包装在 $(document).ready 函数中,但我觉得要么是我没有包含的东西,要么是其他东西在干扰。

也是的,我确实检查过,发现 jQuery 库是在我的 JS 文件之前加载的。

$(document).ready(function() {
    showCategories() {
      ("#dog").hide();
      ("#cat").hide();
      ("#eagle").hide():
      ("#sparrow").hide();
    }
      
    showCategories();
});
    #purple {
      color: purple;
    }
    
    #pink {
      color: pink;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <button id="purple">Mammals </button>
    <button id="pink">Birds</button>
    
    <div class="mammalButtons"> 
      <button id="dog">Dog</button>
      <button id="cat">Cat</button>
    </div>
    
    <div class="birdButtons">
      <button id="eagle">Eagle</button>
      <button id="sparrow">Sparrow</button>
    </div>

谁能给点意见或建议吗?

最佳答案

$(document).ready(function() {
    showCategories() {
        ("#dog").hide();
        ("#cat").hide();
        ("#eagle").hide():
        ("#sparrow").hide();
    }
});

1) 格式错误的函数定义

showCategories(){} 格式不正确。函数定义需要以 function 开头。因此,要纠正这个问题,它需要看起来像

$(document).ready(function() {
    function showCategories() {
        ("#dog").hide();
        ("#cat").hide();
        ("#eagle").hide():
        ("#sparrow").hide();
    }
});

但是,这会导致另一个问题。这只是声明了一个函数。它没有执行它。所以你必须将其更改为...

$(document).ready(function() {
    function showCategories() {
        ("#dog").hide();
        ("#cat").hide();
        ("#eagle").hide():
        ("#sparrow").hide();
    }

    showCategories();
});

要执行该函数,但实际上此时您应该将其删除。

$(document).ready(function() {
    ("#dog").hide();
    ("#cat").hide();
    ("#eagle").hide():
    ("#sparrow").hide();
});

2) 调用 jQuery 时出现拼写错误

("#dog").hide(); 和其他调用只是尝试在字符串上调用 hide() ,因为您错过了$ 用于查找。所有这些都应该纠正。

$(document).ready(function() {
    $("#dog").hide();
    $("#cat").hide();
    $("#eagle").hide():
    $("#sparrow").hide();
});

此时,它应该可以工作,但是,您可以减少它,因为您正在对多个事物执行相同的操作。

$(document).ready(function() {
    $("#dog, #cat, #eagle, #sparrow").hide();
});

关于javascript - jQuery:隐藏功能无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55190116/

相关文章:

html - 定位在一个DIV里面

javascript - 将文本 float 到其容器的末尾

javascript - 如何使用 Selenium 按住非修改键(空格键)?

javascript - jQuery.data() 适用于 Mac OS WebKit,但不适用于 iPhone OS?

javascript - Jquery 和 object href 混淆

javascript - 禁用选择标签,并使用 angularjs 和 ng-repeat 从另一个选择标签中选择选项

jquery - jqGrid向特定列添加多选列过滤器

javascript - 想要更改保存图像文件夹的路径...如何做到这一点

javascript - 如何配置 Angular 以使用没有尾部斜杠的基本路由?

javascript - Protractor 元素不可见的输入字段