Javascript jQuery.show().hide()动画问题

Javascript jQuery.show().hide()动画问题,javascript,jquery,animation,Javascript,Jquery,Animation,在调用show()或hide()时,动画总是为我播放两次。这更容易理解 第二个相关问题是,即使对象已隐藏,隐藏的动画也会播放(从下拉列表中选择第一个选项,然后选择第二个选项)。查看.toggle(showOrHide) 这将自动为您处理它。我认为问题在于您的对话框中有安装脚本。将代码向下移动到页面底部的脚本中,它会工作得更好 还有一个问题是,当目标框已经隐藏时,它会不必要地调用“hide”,但这应该很容易解决。好吧,我不知道我是否在JS Bin上正确保存了它,但它是这样的: 我希望这就是您想要

在调用show()或hide()时,动画总是为我播放两次。这更容易理解

第二个相关问题是,即使对象已隐藏,隐藏的动画也会播放(从下拉列表中选择第一个选项,然后选择第二个选项)。

查看.toggle(showOrHide)


这将自动为您处理它。

我认为问题在于您的对话框中有安装脚本。将代码向下移动到页面底部的脚本中,它会工作得更好


还有一个问题是,当目标框已经隐藏时,它会不必要地调用“hide”,但这应该很容易解决。

好吧,我不知道我是否在JS Bin上正确保存了它,但它是这样的:


我希望这就是您想要的:)

正如Aaron所说,jQuery中有一些函数可以自动切换输入的显示。我想你要找的是slideToggle()

不完全确定问题出在哪里,但是当你将JS清理到一个单独的文件中并使用slideToggle方法时,它似乎工作得很好


以下是对我有效的方法:

好的,但这样会破坏代码,我现在应该用什么来触发?如果我实现toggle,我的.change()就不起作用了。你说得对,谢谢,这确实解决了双动画的问题。知道如何解决第二个问题吗?对于第二个问题,也许您可以跟踪目标
是否已隐藏?这很好,谢谢。不幸的是,您不能选择隐藏动画样式。嗯,我不确定,您的示例并不能很好地工作。无论选择了哪个下拉选项,它似乎都会隐藏和显示。哎呀,我不认为我完全理解你想要做什么。。。。这里有一个更新的解决方案:-它不再使用slideToggle,但我只分配了一个“open”类,这样您就可以使用任意多的选项,而无需为每个唯一值添加逻辑。