Jquery - 运行函数,即使函数之前没有触发。

时间:2011-11-02 14:31:06

标签: jquery function toggle

这是toggle()函数中的代码段。我有一个标题,当点击时,使下面的标题向下滑动,为点击的标题内容创建空间以淡入。

工作正常,但我在堆栈底部的标题有问题。它下面没有一个标题可以向下移动,因此以下用于淡化内容的功能不会触发。

我想保持标题的一般结构向下滑动,然后触发淡入功能。

$(currentHeader).next('li.header')
        .animate({ marginTop: itemHeight + 15 }, 1000, function ()
        {
            $(this).prev('ul#work-headers li').find('ul').fadeIn(500);
        });

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我想说有两个解决方案:

快速而肮脏:

添加空LI标签:

<li class="header" style="display:none;"></li>

或者将代码更改为代码,以便在每个LI&amp;之后将保证金添加到UL或某个div。 UL对。

答案 1 :(得分:0)

我无法真正测试这个,所以你必须弄清楚扭结,但基本的想法是封装你想要的逻辑,这样它就可以与一些不会激发的动画分开调用例。

var fadeIn= function(content) {
                    $(content).find('ul').fadeIn(500);
                }  
var next = $(currentHeader).next('li.header');

if(next.length>0) {
    next.animate({ marginTop: itemHeight + 15 }, 1000, function ()
        {
            fadeIn($(this).prev('ul#work-headers li'));
        });
}
else {
    fadeIn($(this).find('ul#work-headers li'));
}

编辑 - 比如@ Holger的想法更诚实