使用setTimeout时,不会触发load()完成回调中的prependTo()

时间:2018-11-17 09:38:44

标签: javascript php ajax

使用prependTo()时为什么load()内的setTimeout()不会触发完成回调?它仅重复load() result.php,而不执行$('#loadmore').prependTo('#boxchat');。基本上,我使用以下代码:

function requestmessage() {
    $('#boxchat').load('result.php', function(){
        $('#loadmore').prependTo('#boxchat'); 
    });
    setTimeout(requestmessage, 1000);
};
requestmessage();

我想通过同时使用result.php中的setTimeout()prependTo() div(#loadmore)来进行实时div(#boxchat)更新。有人有解决方案吗?

2 个答案:

答案 0 :(得分:0)

问题出在.load()上。每次完成时,它将$('#boxchat')的内容替换为result.php的内容。您可以尝试使用.ajax().get().post()(取决于您的用例,.get()是否可以工作)来代替负载,并在成功/完成回调中输入致电prependTo()

答案 1 :(得分:-1)

检查浏览器控制台。也许load()调用遇到了一些异常(/错误),该异常使脚本的执行停止,因此它甚至没有达到prependTo()调用。

如果您使用的是Google Chrome浏览器,则为Ctrl + Alt + J。