我正在尝试定期:
这是我的代码:
...
<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()函数也是如此。
如何在调用replace()函数之前使hide()函数等待它的完成(在本例中为400毫秒)?
我也尝试过使用delay()和setTimeout(),但它也做了同样的事情。
由于
答案 0 :(得分:0)
我认为您不需要replace
功能。无论如何这应该有效:
function updates() {
$.ajaxSetup({ cache: false });
$.getJSON("mywebsite/get_data", function(data) {
if ( $("#myDiv").html() !== data ) {
$("#myDiv").hide(400, function() {
$("#myDiv").html(data);
$("#myDiv").show(400);
})
}
});
}
SEE JSFIDDLE(没有ajax调用)