Javascript 如何使用jqueryajax填充div而不影响同一html页面中的其他内容?
我正在使用jquery/ajax/php/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
$("#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选项,但仍然在滑动响应时,同一页面中的其他内容向下移动。不确定如何将结果粘贴到可折叠窗格中。我已经看了链接,但仍然感到困惑。