在jquery / ajax

时间:2015-08-26 12:49:10

标签: javascript jquery html ajax

我有一个使用ajax,jquery和php的聊天系统。它会自动提交消息并回显它们。当消息加载时,如

但是当我提交另一条消息时,它将低于这三条消息。

如何让所有提交/加载的消息都在这些消息之上?

我试过这个,但它只是将消息放在下面:

在html文件中

<div id="new_entries"></div>

进行ajax调用后的PHP文件

echo '<div class="chat_mes_wrapper" style="position: relative;">

                <div class="person_avatar second_tab right_side" style="margin-left: 2vw;">
                    <img src="',$your_avatar,'">
                </div>

                <div class="message_bubble right_side">
                <div class="triang_right"></div>

                <p>',$message_text,'</p>
                <div class="sSfIlMGr right_side">
                    <a class="tooltip" style="color: #999;">
                        ', $language['Seen_text'] ,' ', $language['Before'] ,' ', TimeBetween(time()) ,'
                        <span>', $language['Sent'] ,' ', FormatUnix(time()) ,'</span>
                    </a>
                </div>
            </div>

        </div><div class="spacing" style="height: 8vw;"></div>';

JQuery的

$.ajax({
                 url: 'Javascript/returns/send_message.php',
                 type: 'post',
                 data: {recNbI          :       $(".sFNha").attr('id').substr(4),
                        text            :       $("#mFDARcIaK").serialize(),
                        name            :       $("#X_Y_Z").data('name'),
                        avatar          :       $("#X_Y_Z").data('avatar'),
                        lFfDu           :       $("#X_Y_Z").data('language'),
                        fTb             :       false},
                 success: function(data) {
                    $(".chat_mes_wrapper").first().insertBefore( "#foo" );;
                 },
                 complete: function()
                 {
                     Loader();
                 },
                 error: function()
                 {
                     Loader();
                 }
            });

2 个答案:

答案 0 :(得分:4)

您应该使用.prepend(data),如下例所示:

<强> HTML

<div id="new_entries"></div>

<强>的Javascript

//use this in your ajax response data
$.ajax({
  url: "your.php",
  cache: false
}).done(function(data) {
    $( "#new_entries" ).prepend(data);
});

这应该可以解决问题

答案 1 :(得分:-1)

将此代码添加到您的div

   style="z-index:99999;"

如果上述方法无效,请尝试以下方法:

   style="position:absolute;z-index:999999;"
  

如果使用上述代码,您可能需要调整边距或对齐方式。