jquery - 使用slideToggle 的正确设置

标签 jquery toggle expressionengine each

伙计们,我正在尝试获取帖子列表,其内容不会在页面加载时显示,但在每个 div 内都有一个展开按钮,可以仅展开该特定帖子。这是我到目前为止的代码:

<div class="postEntry">

    <div class="collapsibleContent">
         <div class="postContent"></div>
    </div>

    <div class="actionDiv">
        <span id="actionWording">Read More</span>
        <a href="#" id="actionLink" class="open"></a>
    </div>

</div>

<div class="postEntry">

    <div class="collapsibleContent">
         <div class="postContent"></div>
    </div>

    <div class="actionDiv">
        <span id="actionWording">Read More</span>
        <a href="#" id="actionLink" class="open"></a>
    </div>

</div>

我想让actionDiv可点击,以便显示内容,但如果内容展开,也可以将actionWording中的措辞更改为COLLAPSE。 actionLink 是一个 anchor 标记,具有由 css 设置的背景图像和类 open close。

这就是我对 JS 的看法:

jQuery(function()
{

  $('.collapsibleContent').each(function() {
    $(this).css('display', 'none');
  });

  $('.actionButton').click(function() {
    $(this).next('.collapsibleContent').slideToggle('fast')
    return false;
  });

});

最佳答案

jsBin demo

查找 .prev() 并使用 .hide() 方法,除非使用 anchor ,否则不需要 return false ,但在这种情况下我建议使用 event.preventDefault()

$(function(){

  $('.collapsibleContent').hide();
  
  $('.actionButton').click(function( ev ) {
      ev.preventDefault();

      var visible = $(this).prev('.collapsibleContent').is(':visible'),
         slideTog = visible?'slideUp':'slideDown',
              txt = visible?'EXPAND':'COLLAPSE';
       
      $('.collapsibleContent').slideUp().next('.actionButton').text('EXPAND');
      
      $(this).text( txt ).prev('.collapsibleContent')[slideTog]();

  });
   
});

关于jquery - 使用slideToggle 的正确设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276667/

相关文章:

javascript - jQuery-Datatables 下拉列表仅适用于某些列

javascript - 在更改之前显示 Bootstrap 切换文本

php - 使用表达式引擎回显多个类别 ID

mysql - Navicat utf8 无法在 mysql 数据库上运行

javascript - 如何在不刷新页面的情况下从另一个菜单获取值?

jquery - 向div中的第二个 child 添加属性

javascript - 如何使用 jQuery 比较两个日期选择器的日期

javascript - 用于切换功能和启用/禁用的变量

javascript - 在简单的 jQuery 函数中切换

jQuery Cycle 创建太多分页器链接