我正在尝试定期:
- 从 ajax 调用中获取数据
- 将数据与 div 的内容进行比较
- if data != div 的内容:隐藏 div,更改数据,显示 div
这是我的代码:
...
<div id="myDiv">old data</div>
</body>
<script type="text/javascript">
$(document).ready( function() {
updates();
done();
});
function done() {
setTimeout( function() {
updates();
done();
}, 5000);
}
function replace(div, content){
$(div).html(content)
}
function updates() {
$.ajaxSetup({ cache: false });
$.getJSON("mywebsite/get_data", function(data) {
if ( $("#myDiv").html() !== data ){
$("#myDiv").hide(400, replace("#myDiv", data));
$("#myDiv").show(400);
}
});
}
</script>
...
问题是 div 内容在 div 完全隐藏之前被新数据替换,即使回调函数 replace() 提供给 hide() 函数。
如何让 hide() 函数在调用 replace() 函数之前等待其完成(本例中为 400 毫秒)?
我也尝试过 delay() 和 setTimeout() 但它做同样的事情。
谢谢