4

我一直在玩弄一个 jQuery 导航菜单,为了举例,我做了一个模型:http: //jsfiddle.net/DerFlatulator6/3jYhh/1/

我遇到了一个问题,它的作用与我想要的完全相反。我的悬停事件代码是这样的:

$(this)
    .addClass('selected')
    .children('ul')
        .animate({'height': 'toggle'}, 300);

经过一番修修补补,我想出了这个

$(this)
    .addClass('selected')
    .children('ul')
        .css('height', 'toggle')
        .animate({'height': 'toggle'}, 300);

哪个有效,但我不知道为什么!有没有人能够准确解释发生了什么?

一个附带的问题......你会注意到小提琴有一个 3 级菜单,其中代码被隔离用于垂直和水平下拉菜单,是否有一种很好的方法来编写一个函数来覆盖它们,或者我应该离开它原样?

4

1 回答 1

2

animate({'height': 'toggle'}, 300)如果高度大于 0,则类似于将高度从当前设置为 0,或者如果当前为 0,则从 0 设置为上一个设置。

来自文档http://api.jquery.com/animate/

除了数值之外,每个属性都可以采用字符串“show”、“hide”和“toggle”。这些快捷方式允许自定义隐藏和显示考虑到元素显示类型的动画。

于 2012-04-30T16:11:57.080 回答