我有一个简单的问答页面。当用户点击一个问题时,答案将通过 slideToggle() 显示。
这是非常微不足道的,但我坚持使用 Chrome、Safari 和 Opera,但可以在 Firefox 上工作,这对于前三个是可以预期的,因为它们由 Webkit 运行,而 Firefox 由 Gecko 运行。我使用上述浏览器的所有最新版本。
代码是这样的……
( function() {
$('.answer-list').addClass('answer-list-display');
$('.question button').click(function() {
$(this).next().slideToggle(300);
});
} () )
这很简单,应该可以工作。
我找到了 a similar answer (实际上,和我的一样)但是如果我使用 visibility:hidden
,答案的高度仍然存在,这会在问题之间造成差距。我也尝试通过控制 height
和 animation() 函数来做到这一点,但仍然没有成功。
所有 Webkit 浏览器都在第一时间显示答案。但所有其他时候,我必须点击问题三(!)次才能看到答案。
我知道这是一个微不足道的问题,但我实际上花了我生命中的 4 个小时来尝试这样做,几乎没有 sleep ,这真的很令人沮丧。
我还从很久以前读过的一本书 Jquery The Missing Manual 中找到了一个示例,该示例使用 toggle()
方法并将两个函数作为参数。仍然无法解决 Webkit 浏览器中的相同问题。
谢谢大家的回答。
最佳答案
好的。这就是答案。
这是我这边的标记错误。我使用了无序列表。所有问题都在 li
中,button
在 li
中。答案在一个内部无序列表中。当用户单击该按钮时,将显示内部列表。那没有用。
然后我切换到 div
和 p
获取答案,切换到 button
获取问题,一切正常。
每日提示:不要将任何类型的列表与 slideToggle、fadeToggle()、toggle() 或其他 Jquery 动画一起使用。看来Jquery计算起来太复杂了,我都试过了。好吧,主要是。谁知道...
关于Jquery QuestionAnswer 与 slideToggle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24137382/