繁体   English   中英

再次单击时的jQuery slideUp()内容

[英]jQuery slideUp() content when clicked for a second time

仅当第二次单击“ .areaCodeList”时,我将如何对内容进行slideUp()?

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

您可以使用某些类来表明它在运行代码之前已被单击

$(".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的答案所述

您应该使用slideToggle()

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM