【问题标题】:toggle show and hide not working切换显示和隐藏不起作用
【发布时间】:2014-11-22 16:51:40
【问题描述】:

我是 jquery 的新手,我正在尝试 A jquery book 中的这个常见问题解答练习,但它只在单击时显示常见问题解答,当我们再次单击它时它应该隐藏但它没有

$(document).ready(function() {
    dynamicFaq();
});

   function dynamicFaq() {
        $('dd').hide();
        $('dt').bind('click', function(){
            $(this).next().show();
        });
        $('dt').bind('click', function(){
            $(this).next().toggle();
        });
   }

谢谢大家。 书籍练习是 this="6。现在我们已经从问题转到答案了。现在剩下要做的就是展示 答案:

$('dt').bind('click', function(){
$(this).next().show();
});
  1. 不要忘记,我们的 dynamicFaq 函数在我们调用它之前不会做任何事情。称呼 文档就绪语句中的 dynamicFaq 函数:

    $(document).ready(function(){ 动态常见问题(); });

  2. 现在,如果我们在浏览器中加载页面,您可以看到我们所有的答案都是 隐藏,直到我们点击问题。这很好而且有用,但它甚至会 如果网站访问者在阅读完答案后可以再次隐藏答案,那就更好了 让它远离他们。幸运的是,这是一个非常常见的任务,jQuery 让这非常 对我们来说很容易。我们所要做的就是用调用替换我们对 .show() 方法的调用 .toggle() 方法如下:

    $('dt').bind('click', function(){ $(this).next().toggle(); });"

【问题讨论】:

    标签: jquery


    【解决方案1】:
     function dynamicFaq() {
            $('dd').hide();
            $('dt').bind('click', function(){
                $(this).next().show();//showing
            });
            $('dt').bind('click', function(){
                $(this).next().toggle();//hiding
            });
       }
    

    所以,永远不会出现。

    这样做:

     function dynamicFaq() {
            $('dd').hide();
            $('dt').bind('click', function(){
                $(this).next().toggle();//hide or show
            });
       }
    

    【讨论】:

    • 啊啊啊啊!很简单,谢谢你的回答。
    【解决方案2】:

    试试这个代码:

    $(document).ready(function() {
        $('dd').hide();
        $('dt').click(function(){
            $(this).next().toggle();
        });
    });
    

    【讨论】:

      【解决方案3】:

      你可以只绑定 $(document).ready() 里面的元素,不需要再次调用函数。

      试试这个:

      $(document).ready(function() {
          $('dd').hide();
          $('dt').click(function() {
              $('dd').toggle();
          });
      });
      

      【讨论】:

      • 也感谢您的回复。这也有效,但它会同时显示所有答案。
      • 哦,我明白了,一开始只是不明白你的 $(this).next() 因为没有看到 html 部分。太好了,它现在可以工作了;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 2012-03-11
      • 2011-11-08
      相关资源
      最近更新 更多