jQuery,等待方法完成然后触发动作

时间:2019-04-12 05:59:23

标签: jquery promise

这是我的情况。我需要先运行此方法

$(editor.image.toggleCaption);

然后:

alert('hello world');

如果我这样做:

$(editor.image.toggleCaption);
alert('hello world');

它不起作用,因为alert是在方法完成之前触发的。

我可以使它起作用的唯一方法是使用setTimeout。但这是一个静态解决方案,因此我想避免使用它。 我尝试过$.Deferred,但是我不知道如何设置它,并且尝试过的所有组合都无效。

有人可以帮我吗?

预先感谢

1 个答案:

答案 0 :(得分:1)

使用when似乎可行。请参考https://api.jquery.com/jquery.when/。将$('.test').hide('slow')替换为您的函数。希望有帮助

$.when($('.test').hide('slow')).then(function(){
    alert(1);
})  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="test">Some Contents</div>