0

当用户单击它并向下滑动隐藏的 div 的内容时,我需要一些帮助来隐藏 div。以下代码用于向下滑动隐藏的 div。

    $(document).ready(function (){ $('.hide').hide();
    $('.main:has(".hide")').find('div.toggle').click(function() {
       var el = $(this).next('.hide'),
       check = (el.is(':visible')) ? el.slideUp() : ($('.hide').slideUp()) (el.slideDown());
    });

    });

上面的例子在这里这个链接有完整的标记和一些实验,我试图隐藏阅读更多的 div,但它隐藏了每个 div。如果有人能帮我解释上面的 if else 速记语句。

谢谢大家我的问题已经解决了:)

4

4 回答 4

0

我认为你需要学习的是如何使用this. this是一个关键字,指的是您单击的元素。因此,您可以执行类似$(this).hide()或 remove()、toggle() 或任何您想要的操作。

http://jsbin.com/awirap/5/edit

查询这个

编辑:要在单击另一个时显示更多信息,您将执行以下操作:

$('.toggle').show();

您显示所有这些,然后在这段代码之后您$(this).hide();只隐藏您单击的那个。

于 2013-02-07T06:32:29.467 回答
0

这是一个更简单的方法。

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

if/else 语句的简写称为三元运算符。您的代码说,如果带有附加文本的 div 可见,则将其向上滑动(隐藏),否则,将其向下滑动(显示)。但是 : 之后的部分可能不应该有 ($('.hide').slideUp())

于 2013-02-07T06:33:02.733 回答
0

将此代码替换为您现有的脚本

$(document).ready(function (){
       $('.hide').hide();
       $('.main:has(".hide")').find('div.toggle').click(function() {
           $(".toggle").show();
           $(this).hide();
           var el = $(this).next('.hide');
           var check = (el.is(':visible')) ? el.slideUp() : ($('.hide').slideUp()) (el.slideDown());
       });

});
于 2013-02-07T06:42:02.523 回答
0

我想你想要这个:http: //jsbin.com/awirap/6/edit

$(document).ready(function (){
   $('.hide').hide();
   $('.main').find('div.toggle').click(function() {
       if ($('.hide').css("display") == 'none') {
          $('div.toggle',this).addClass("hidden").next().addClass("show");
       } else {    //---------------------------------^^---missed the parentheses
          $('div.toggle').show();
       }
       var el = $(this).next('.hide'),
       check = (el.is(':visible')) ? el.slideUp() : ($('.hide').slideUp()) (el.slideDown());
   });
});

if someone would help me explain the above if else shorthand statement.

(condition) ? if true : if false
于 2013-02-07T06:42:33.767 回答