【发布时间】:2016-09-26 14:11:27
【问题描述】:
所以,我很熟悉不能在 jQuery 的 .css 函数上使用回调函数的事实。相反,我使用了setTimeout 函数:
$('#header-nav').css({'left': leftBstr});
posBstr = '.level' + posB.toString();
setTimeout(function(e){
$('#header-nav ul' + posBstr).removeClass('menu-active');
}, 300);
此代码用于移动菜单动画。有两种类型的按钮:
- 进一步进入菜单(子类别)
- 返回(父类)
但是,在使用setTimeout功能时,当我点击太快时,菜单消失了,因为删除了menu-active类。
我已经尝试将 setTimeout 函数放在 var 中,并使用 clearTimeout 函数,但这不起作用。
我的问题:是否有另一种方法可以在不使用 setTimeout 的情况下在 .css 函数上重新创建回调函数?
【问题讨论】:
-
也许使用
.animate,因此使用 JS 而不是 css 类对其进行动画处理? -
嗯,我可以试试。但我也很想为其他情况找到回调替换器的解决方案:)
-
@evolutionxbox 出于某种原因 .animate 给了它一个延迟:/
-
@MaartenWolfsen 用于绑定过渡结束参见stackoverflow.com/questions/9255279/…
标签: javascript jquery html css callback