使用 jQuery 伪造加载更多内容(无 AJAX/PHP)

发布于 2024-11-28 08:49:09 字数 208 浏览 0 评论 0原文

我在一个页面上有一个数据列表,一个大约 100 个项目的简单有序列表,只有一个标题和摘录,就像存档页面上一样。

在页面加载时,我想隐藏除前 25 个项目之外的所有项目,并可以选择加载另外 25 个项目,再加载 25 个项目,直到它们全部可见。

我研究过简单的分页插件,例如 jPaginate,但只是希望列表每次扩展 25。

只是好奇你的想法 - 谢谢!

I have a list of data on a page, a simple ordered list of around 100 items, just a title and excerpt like on an archive page.

On page load, I want to hide all but the first 25 items with an option to load 25 more, 25 more until they're all visible.

I've looked into simple pagination plugins like jPaginate but would simply like the list to expand by 25 every time.

Just curious of your thoughts - thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吾家有女初长成 2024-12-05 08:49:09

在所有项目之间共享一个公共类,并使用 jQuery 每次显示更多元素。

<div class="listitem">list item 1</div>
<div class="listitem">list item 2</div>
<div class="listitem">list item 3</div>
<div class="listitem">list item 4</div>
<div class="listitem">list item 5</div>
<div class="listitem">list item 6</div>
<div class="listitem">list item 7</div>
<div class="listitem">list item 8</div>
<div class="listitem">list item 9</div>
<div class="more">showmore</div>

** jquery **

$(".listitem").hide();
$(".listitem").slice(0, 2).show();

$(".more").click(function(){
    var showing = $(".listitem:visible").length;
    $(".listitem").slice(showing - 1, showing + 2).show();
});

供您参考:
http://api.jquery.com/slice/

编辑:
这是一个 jsFiddle 展示了这一点......
http://jsfiddle.net/uQWGB/1/

Share a common class among all your items and use jQuery to show more elements each time.

<div class="listitem">list item 1</div>
<div class="listitem">list item 2</div>
<div class="listitem">list item 3</div>
<div class="listitem">list item 4</div>
<div class="listitem">list item 5</div>
<div class="listitem">list item 6</div>
<div class="listitem">list item 7</div>
<div class="listitem">list item 8</div>
<div class="listitem">list item 9</div>
<div class="more">showmore</div>

** the jquery **

$(".listitem").hide();
$(".listitem").slice(0, 2).show();

$(".more").click(function(){
    var showing = $(".listitem:visible").length;
    $(".listitem").slice(showing - 1, showing + 2).show();
});

For your reference:
http://api.jquery.com/slice/

Edit:
Here's a jsFiddle showing this in action...
http://jsfiddle.net/uQWGB/1/

z祗昰~ 2024-12-05 08:49:09

创建 4 个 DIV,并在每个 DIV 中放入 25 个项目。使第一个可见并隐藏另一个 3. 创建一个变量并将其设置为 1,并创建 2 个用于前后分页的链接。

逻辑很简单:按任何分页链接都会检查局部变量,并确保在增加或减少后它仍然有效,因此 1、2、3 或 4。您可以调用渲染函数。

你的渲染函数除了隐藏 4 个 div 中的 3 个、显示所选的一个并在需要时禁用分页链接之外什么也不做。


对于可扩展列表,创建 1 个显示更多链接而不是 2 个分页链接。

在这种情况下,您的渲染函数永远不会隐藏 div,而只是显示另一个 div。当所有 4 个 div 都启用时,必须隐藏显示更多链接。

希望这有帮助。

Create 4 DIVs and put 25 items into each one. Make the first visible and hide the other 3. Create a variable and set it to1, and create 2 links for paginating back and forward.

The logic would be simple: pressing any of the pagination links would check the local variable and make sure that after an increase or decrease it would still be valid, so 1,2,3 or 4. The you call your render function.

Your render function would do nothing else except hiding 3 divs of the 4, showing the one selected and disable the pagination links if needed.


For the expandable list create 1 show more link instead of the 2 paginarion links.

Your render function would in this case never hide a div, just show another one. When all 4 divs would be enabled then the show more link has to be hidden.

Hope this helps.

窗影残 2024-12-05 08:49:09

将您的内容块包装在带有 style="display:none" 和 class="hiddenMore" (或其他内容)的 DIV 中。

<a href="javascript://" onclick="showMore(this)">more...</a>

 

function showMore(e) {
       $('.hiddenMore').eq(0).show()
       $(e).removeClass('hiddenMore')    
} 

Wrap chunks of your stuff in a DIV with style="display:none" and a class="hiddenMore" (or something).

<a href="javascript://" onclick="showMore(this)">more...</a>

 

function showMore(e) {
       $('.hiddenMore').eq(0).show()
       $(e).removeClass('hiddenMore')    
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文