背景:
我遇到了一个问题,觉得有些出乎意料。我有一个小的jQuery模块,其中我一直在使用.slideToggle()
来显示/隐藏一个元素,并且一直工作正常。今天我正在为我的插件实现两个公共方法,以便使用滑动效果来显示或隐藏该元素。
虽然听起来很简单,但我认为我只需使用.slideUp()
和.slideDown()
来完成同样的事情。当我意识到在该元素上调用这些方法时什么都没有发生时,我真的很惊讶。
顺便说一句,调用.show()
和.hide()
也能正常工作,但没有期望的动画效果。
我一直以为.slideToggle()
在“幕后”实现了与.slideUp()
和.slideDown()
相同的功能,但显然并不是这样。
我的问题:
.slideToggle()
与.slideUp()
和.slideDown()
有何不同?在使用它们时需要考虑哪些因素?
更新示例:
我已经将其分解为重要的组件,以便在此示例中重现此错误。您可以注释掉.slideToggle("slow")
和.slideUp("slow")
来进行测试。使用 slideToggle 正常工作,使用 slideUp 则不行。
.slideToggle()
和.slideUp()
之间可能存在一些明显的差异,由于实现差异,这可能可以解释这个问题。 - Christofer EliassonslideUp()
和slideDown()
的调用。您确定在元素隐藏时没有调用slideUp()
,在元素可见时没有调用slideDown()
,而不是反过来吗? - Frédéric Hamidi