1

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

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

这就是我想要做的。在搜索按钮的 click() 上(或从搜索框中输入):

$('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 未在 5 毫秒内修改)。

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

4

1 回答 1

0

我想你会用 jquery when() 找到你的答案。

文档:http ://api.jquery.com/jQuery.when/

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

      $('div#search img').attr('src', '/static/img/search.gif');
});
于 2013-09-25T22:18:21.917 回答