【发布时间】:2022-01-15 05:42:18
【问题描述】:
我有一个带有容器的 index.html,我想在点击时通过 ajax 在其中加载内容。它看起来像这样:
<div id="loadcontent"></div>
<div id="more">Load More</div>
而且只有一个包含很多 div 的内容文件:
<div id="1" class="content">One</div>
<div id="2" class="content">Two</div>
<div id="3" class="content">Three</div>
<div id="4" class="content">Four</div>
<div id="5" class="content">Five</div>
<div id="6" class="content">Six</div>
<div id="7" class="content">Seven</div>
<div id="8" class="content">Eight</div>
<div id="9" class="content">Nine</div>
<div id="10" class="content">Ten</div>
<div id="11" class="content">Eleven</div>
<div id="12" class="content">Twelve</div>
这是 jQuery 代码:
$(document).ready(function () {
var countItem = 0;
$('#more').click(function(){
countItem ++;
$('<div/>').appendTo('#loadcontent').load('content.html #' + countItem)
.hide()
.fadeIn(1000);
});
});
现在,当单击加载更多按钮时,它只加载一个 div,因为它会计算 id。
是否可以使用 ajax 加载接下来的三个或更多 div 并将它们附加到已经加载的 div 中?如果是,我怎样才能让它工作? 例如:第一次点击:1-3,第二次点击:1-6,第三次点击:1-9,等等……
任何帮助将不胜感激。
更新:
我不想一次加载内容,然后使用.show() 或类似的东西显示它。每次点击都应该是一个ajax请求。
【问题讨论】:
-
只需发出一个请求并将响应存储在一个变量中。然后每次单击都添加到容器中。一遍又一遍地请求同一个文件是没有意义的。
-
您可以让服务器端文件一次只生成 3 个元素。您传入接收到的总元素数,然后制作一个 ajax 以获取 3 个元素