setInterval在短时间后清除div

时间:2019-06-01 19:50:56

标签: jquery html laravel setinterval

我正在使用jquery在Laravel上进行私人聊天。当我使用选项卡加载时,引导程序将私有部分启动,所有消息均由ajax调用加载。当我单击要显示的消息时,我已经在js中使用setInterval实现了。但是它显示2秒,然后消失。

尝试设置setTimeOut而不是setInterval

setTimeout(function () {
    $("#private-message").load(window.location.href + " #private-message");
}, 2000);

$(document).ready(function () {
    var xhr2 = false;
    $(document).on('click', ".collapseAjax", function(){
      if(xhr2 !== false){
        xhr2.abort();
        xhr2 = false;
      }
      collapseAjax(this);
    });
    function collapseAjax(className) {
        var block_content = $(className).attr("data-target");
        block_content = block_content + "-content";
        $(block_content).empty();
        xhr2 = $.ajax({
            type: "GET",
            url: $(className).attr("urldata"),
            data: 'html',
            success: function (data) {
                if (data) {
                    $(block_content).append(data);
                }
            }
        });
    }
}
);

HTML部件:

<li class="nav-item">
    <a class="nav-link collapseAjax" data-toggle="tab" data-target="#pv-user"  urldata="/test/show/{{$conv->id}}">SomeUser Name</a>
  </li>
<!-- Tab panes -->
<div class="tab-content">
  <div class="tab-pane container active" id="#pv-user"><div id="pv-user-content"></div></div>
</div>
<div id="pvMessage">
    @foreach($pv->PrivateMessages as $message) {{$message->userInfo->name}} : {!! $message->message !!}<br /> @endforeach
</div>

我希望它能正常工作并正确刷新div消息而不删除它。实际结果只是删除#pvMessage部分。

0 个答案:

没有答案