所以,我知道不能在 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
函数上重新创建回调函数?
最佳答案
你可以尝试使用promise
.promise() 方法返回一个动态生成的 Promise,一旦绑定(bind)到集合的特定类型的所有操作(无论是否排队)结束,该 Promise 就会被解析。
$('.element').css("color","yellow").promise().done(function(){
alert( 'color is yellow!' );
});
关于javascript - .css 函数的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39705185/