单击第二次时的jQuery slideUp()内容

时间:2012-02-29 20:54:28

标签: javascript jquery

只有在第二次点击“.areaCodeList”时,我才会如何slideUp()内容?

$(".areaCodeList").on('click', function() {
    $(this).next('.churchList').slideDown();
    ($this.die());
    $('.churchList').slideUp();
});

3 个答案:

答案 0 :(得分:0)

在运行代码

之前,您可以使用某个类来表明它已被点击
$(".areaCodeList").on('click', function() {
  if (!$(this).is('.clicked')){
    $(this).addClass('clicked');
    return false;
  }
  $(this).next('.churchList').slideDown();
  $(this).die();
  $('.churchList').slideUp();
});

您也可以考虑使用属性($(el).attr('clicked'))而不是类,然后以类似的方式检查它。

<强>更新 问题标题真的令人困惑,似乎只有我们中的许多人(回答这个问题)从一开始就没有得到它:

最初我得到了这样的话:

  

如果第二次单击,则向上滑动元素。   如果是这种情况,那么我提供的样本是正确的。

但看起来问题更像是这样:

  

在每次偶数点击时向下滑动元素,并在每次奇怪的点击时向上滑动。

如果是slideToggle是解决方案的情况(如epascarello's answer中所述)

答案 1 :(得分:0)

您应该使用slideToggle()

$(".areaCodeList").on('click', function() {
    $(this).next('.churchList').slideToggle();
});

Example

答案 2 :(得分:-1)

您可以检查.churchList是否可见(向下滑动):

$(".areaCodeList").on('click', function() {
    if( $(this).next('.churchList').is(':visible') === true){
        $(this).next('.churchList').slideUp();
    }else{
        $(this).next('.churchList').slideDown();
    }
});