javascript - .css 函数的回调

标签 javascript jquery html css callback

所以,我知道不能在 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/

相关文章:

javascript - this.form.submit(); 是否有更好的 jQuery 解决方案?

javascript - 滚动突然停止在 wordpress 网站上工作

javascript - Backbone.js 删除模型

javascript - 异步库是否有任何用于处理管道的控制流?

javascript - 在 JavaScript 中从一个 LatLng 到另一个获取度数 (0-360)

javascript - 如何在 JavaScript 中实现任何对象的事件监听器

html - 我需要在网页上居中 3 <div>

html - 在 div 内对齐响应式内容

html - 如果右侧有一个 div,如何使图像居中?

javascript - 使用标签提交表单并使 onsubmit 工作