【问题标题】:jquery collapse and expand (reveal)jquery 折叠和展开(显示)
【发布时间】:2011-12-06 21:54:06
【问题描述】:

页面上有许多新闻框在点击时会折叠和展开内容。似乎没问题,但是一个新闻框已经打开,用户必须在另一个新闻框上单击两次才能使其展开。

请参考链接,http://jsfiddle.net/sameerast/JHgvK/

【问题讨论】:

    标签: jquery expand collapse


    【解决方案1】:

    您可以将代码缩短为:

    $(".fade").click(function() {
        $(this).next().slideToggle("slow"); 
    });
    

    这会将click 事件处理程序绑定到具有.fade 类的所有元素,而不是像您当前那样通过id 单独绑定。使用slideToggle 处理该元素是否已经对您可见,因此您无需费心在变量中维护它。

    您尝试的问题是您用来执行此操作的 hidden 变量。当您展开一个元素时,hidden 设置为 false。然后,当您单击另一个时,hidden 为 false,因此 slideUp 部分运行,hidden 设置为 true,因此当您再次单击时,正确的分支(else)运行。

    这是updated working fiddle

    【讨论】:

      【解决方案2】:

      试试这个。

      http://jsfiddle.net/JHgvK/2/

      我不确定您是否希望在单击一个框时折叠其他框。

      我没有使用 slideToggle,以防你想为每个状态做其他事情

      【讨论】:

      • 非常感谢,我观察到您的脚本很好,但缺少渐变不透明动画。
      猜你喜欢
      • 2012-05-15
      • 1970-01-01
      • 2014-08-14
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 2012-01-14
      相关资源
      最近更新 更多