jQuery等待Attr更改

时间:2013-09-25 22:16:16

标签: javascript jquery

我使用JQuery为我的网站设置了搜索功能。通过toggle()删除所有不匹配的结果,页面上有很多数据。您可以成像,搜索需要几秒钟才能运行。

为了提供搜索正在运行的一些用户反馈,我正在尝试用spinner gif替换img源代码。

这就是我想要做的。点击搜索按钮的点击()(或从搜索框输入):

$('div#search img').attr('src', '/static/img/spinner.gif');
search_contacts(s);
$('div#search img').attr('src', '/static/img/search.gif');

我打开Chrome开发者工具并显示网络标签。一旦我尝试搜索,我就会看到注册spinner.gif的GET请求。问题是此请求设置为“挂起”,并且在search_contacts()运行时永远不会进展。搜索完成的那一刻,Gif加载(好吧,304未在5ms内修改)。

在运行函数之前,让jquery / javascript等待属性更改完成的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为你会在()时找到jquery的答案。

Doc:http://api.jquery.com/jQuery.when/

$.when( search_contacts(s) ).done(function() {

      $('div#search img').attr('src', '/static/img/search.gif');
});