Javascript 如何使用jqueryajax填充div而不影响同一html页面中的其他内容?

Javascript 如何使用jqueryajax填充div而不影响同一html页面中的其他内容?,javascript,jquery,html,ajax,overlay,Javascript,Jquery,Html,Ajax,Overlay,我正在使用jquery/ajax/php/html构建一个实时搜索字段: $("#keywords").keyup(function() { var word = $("#keywords").val(); if(word != '') { $.ajax ({ type: "POST", url: "mysearch.php", data: "word="+ word, success

我正在使用jquery/ajax/php/html构建一个实时搜索字段:

  $("#keywords").keyup(function()
  {
    var word = $("#keywords").val();
    if(word != '')  
     {
      $.ajax
       ({
         type: "POST",
     url: "mysearch.php",
     data: "word="+ word,
     success: function(response)
     {
        $("#results").html(response);
     }.....
我在html页面中有一个空的div存根:

    <div id="results"></div>; 
我能够实现mysearch.php并返回结果,并用响应填充“results”div。但是,当响应填充到“results”div中时,同一html页面中的其他内容行向下移动,以便给“results”div留出空间。我真的不喜欢这样,因为它感觉屏幕在晃动

我有没有办法修改它,这样当响应返回填充“results”div时,它会显示在一个新层中,而我在现有层中的内容会保留在那里?如果有一些重叠的内容,我希望新的响应“results”div覆盖现有层(并且现有层内容更改为hidden)


谢谢

有几种方法可以解决这个问题。一个相当简单、纯粹的jquery选项可能是,您可以从隐藏$('#results')div开始,附加html,然后执行$('#results').slideDown()以使转换更流畅

换句话说,当你得到成功的回应时,你会使用

    $("#results").hide().html(response).slideDown();

你可以做的另一件事是将结果粘贴在一个手风琴/可折叠的窗格中,当它被填充时,触发它展开。Bootstrap提供了一个很好的可折叠窗格示例:

请您也向我们展示HTML,好吗?如果新层的内容比旧层小,该怎么办??如果旧层仍然存在或旧层的剩余部分未被较小层覆盖,则应显示results div的溶质位置,以防止其他内容被替换。Josh-抱歉,整个html太大,无法在此线程中发布。你提出了一个我还没有想到的好观点。此时,我只想先阻止其他内容移动。那我可能会担心别人。抱歉,我没有完全理解你的意思。你的意思是为results div设置一个绝对位置吗?这在我的例子中并不容易,因为results div位于页面中间的一个表单元格中。不过我会想办法获得一个好的绝对位置。谢谢你的回复。我尝试了您建议的jquery slideDown选项,但仍然在滑动响应时,同一页面中的其他内容向下移动。不确定如何将结果粘贴到可折叠窗格中。我已经看了链接,但仍然感到困惑。