Jquery - 即使函数之前未运行,也运行函数。
问题描述:
这是toggle()
函数中的一个片段。我有一个标题,点击时,使下面的标题向下滑动创建点击标题内容淡入的空间。Jquery - 即使函数之前未运行,也运行函数。
有工作正常,但我有问题,在堆栈底部的标题。在它下面没有一个标题向下移动,所以下面的内容淡入淡出的函数不会触发。
我想保持标题的一般结构滑下来,然后在淡入功能被激发。
$(currentHeader).next('li.header')
.animate({ marginTop: itemHeight + 15 }, 1000, function()
{
$(this).prev('ul#work-headers li').find('ul').fadeIn(500);
});
任何帮助将不胜感激。
答
我会说有2个解决方案,以这样的:
的快速和肮脏的:
添加一个空LI标签:
<li class="header" style="display:none;"></li>
或更改代码的代码添加在每个UL对之后保证金为UL或某个div。
答
我不能真的测试这个,所以你必须找出扭结,但基本的想法是封装你想要的逻辑,以便它可以与不会触发的动画分开调用一些案例。
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'));
}
编辑 - 如@霍尔格的想法更是诚实的
+0
没有测试过这一点,但使用长度属性是我将如何接近这一点。感谢您的尝试,如果我有时间,我会尝试一下。 –
这种肮脏的解决方案,但它的工作。我刚刚创建了一个标题,只显示一个标题,而不是将其留空,只需键入网站名称即可。感谢您的简单解决方案! –
嘿嘿好...有时很高兴有一个快速修复,然后继续与更重要的/有趣的东西:) – Holger