【发布时间】:2011-12-06 21:54:06
【问题描述】:
页面上有许多新闻框在点击时会折叠和展开内容。似乎没问题,但是一个新闻框已经打开,用户必须在另一个新闻框上单击两次才能使其展开。
【问题讨论】:
页面上有许多新闻框在点击时会折叠和展开内容。似乎没问题,但是一个新闻框已经打开,用户必须在另一个新闻框上单击两次才能使其展开。
【问题讨论】:
您可以将代码缩短为:
$(".fade").click(function() {
$(this).next().slideToggle("slow");
});
这会将click 事件处理程序绑定到具有.fade 类的所有元素,而不是像您当前那样通过id 单独绑定。使用slideToggle 处理该元素是否已经对您可见,因此您无需费心在变量中维护它。
您尝试的问题是您用来执行此操作的 hidden 变量。当您展开一个元素时,hidden 设置为 false。然后,当您单击另一个时,hidden 为 false,因此 slideUp 部分运行,hidden 设置为 true,因此当您再次单击时,正确的分支(else)运行。
【讨论】:
【讨论】: