我使用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等待属性更改完成的正确方法是什么?
答案 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');
});