我正在寻找动画效果,然后单击它。但是,当我执行以下操作时,它会立即单击该项目。这是为什么?我该如何补救?
$('input[type="submit"]').hide('slow').show('slow').click();
最佳答案
如果您希望同步代码作为动画队列的一部分异步发生,最好的方法是使用 .queue()
方法:
$('input[type="submit"]')
.hide('slow')
.show('slow')
.queue(function (next) {
$(this).click();
next();
});
只有在当前执行的代码完成之前您没有将更多动画排入队列,Promise 才会起作用。
完整的回调是可以的,只要你之后不需要执行更多的动画。否则,完整的回调最终看起来像箭头代码:
$(...).hide('slow', function () {
$(this).show('slow', function () {
$(this).click();
});
});
.queue()
有助于 flatten arrow code 。关于javascript - 为什么点击事件会在这里立即注册?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28773322/