再次单击时,jQuery Toggle hide

时间:2015-12-26 00:47:14

标签: jquery toggle

编辑:如果打开另一个sig,我确实希望其他sig隐藏。

我为论坛的签名设置了切换,我通过切换获得了我想要的内容,但是当我再次点击切换时,我无法弄清楚如何隐藏它。 / p>

function toggleSig(divId) {
   $('.forum_signature').each(function(index) {
      if ($(this).attr("id") == divId) {
          $(this).show(200);
      }
      else {
          $(this).hide(600);
      }
   });
}

https://jsfiddle.net/4yg83kru/1/

有关如何在再次点击时隐藏切换功能的任何想法? (我是JS / jQuery的新手)

3 个答案:

答案 0 :(得分:1)

您可以将show方法更改为切换,因此单击的“id”将切换,另一个将隐藏,如果其可见

function toggleSig(divId) {
    $('.forum_signature').each(function(index) {
        if ($(this).attr("id") == divId) {
            $(this).toggle(200);
        }
        else {
            $(this).hide(600);
        }
    });
}

https://jsfiddle.net/4yg83kru/2/

答案 1 :(得分:0)

您可以使用切换事件:

function toggleSig(divId) {
    $('.forum_signature').each(function(index) {
        if ($(this).attr("id") == divId) {
            $(this).toggle(200);
        }

    });
}

注意:这不是唯一的方法,但在我看来,这对你来说很简单。

这个只打开点击的一个:

function toggleSig(divId) {
   $('.forum_signature').hide()
    $('.forum_signature').each(function(index) {
        if ($(this).attr("id") == divId) {
            $(this).show(200);
        }

    });
}

您可以在此处查看:

https://jsfiddle.net/5xkvew4k/

答案 2 :(得分:0)

传入项目的id并循环遍历所有项目并做一些看起来有点脏。您可以使代码更通用。给你的锚标签一个css类。

<a class="myA">Toggle Signature</a>
<div id="1" class="forum_signature" style="display:none;">
    Signature
</div>
<a class="myA">Toggle Signature</a>
<div id="2" class="forum_signature" style="display:none;">
    Signature 2
</div>

现在javascript来处理隐藏和显示

$(function(){

  $(".myA").click(function(e){
     e.preventDefault();

     var c= $(".forum_signature:visible"); //Get currently visible one       
     $(this).next().toggle(); //Show the current one
     c.hide(); // Hide the previously visible one        
  });  

});

Here是一个有效的jsbin样本