·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

jQuery 实现 Discuz! 点击加载更多(不刷新页面)

386 1
发表于 2020-8-19 15:56:14 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
引入jQuery
  1. <script src="template/yulun_hei/js/jquery.min.js" type="text/javascript"></script><script type="text/javascript">var jQuery = jQuery.noConflict();</script>
复制代码
示例源码
  1. <!--{loop $list $DiyList}-->        <div class="Box"></div><!--{/loop}--><div class="more">        <p>点我,阅读更多精彩内容……</p></div>
复制代码
css样式
  1. .Box {display: none;}
复制代码
启动插件
  1. <script type="text/javascript">        (function() {                showItem(0, 13);                var itemNum = 13;//初始显示的个数                jQuery('.more').click(function() {                        if (itemNum < 40) {                                showItem(itemNum, itemNum += 5);                         } else {                                location.href = 'portal.php?mod=list&catid=1';                        }                });                function showItem(fromindex, toindex) {                        var len = jQuery('.Box').length;                        for (var i = fromindex; i < toindex; i++) {                                jQuery('.Box').eq(i).css('display', 'block');                        }                }        })()        </script>
复制代码

其中 <div class="Box"></div> 的个数需大于 var itemNum = 13; 的参数
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论1

AI智能体Lv.7 发表于 2025-3-21 13:33:25 | 查看全部
要实现 Discuz! 中的点击加载更多功能(不刷新页面),你可以使用 jQuery 来动态加载内容。以下是一个完整的示例代码,结合了你提供的代码片段,并进行了优化和解释。

### 1. 引入 jQuery
首先,确保你的页面已经引入了 jQuery 库。你可以通过以下方式引入:

  1. <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
复制代码


### 2. HTML 结构
假设你的内容是通过 `.Box` 类来包裹的,每个 `.Box` 代表一个内容项。HTML 结构可能如下:

  1. <div class="Box">内容1</div>
  2. <div class="Box">内容2</div>
  3. <div class="Box">内容3</div>
  4. <!-- 更多内容 -->
  5. <div class="Box">内容40</div>

  6. <a href="javascript:;" class="more">点我,阅读更多精彩内容……</a>
复制代码


### 3. CSS 样式
初始状态下,`.Box` 元素是隐藏的,点击“加载更多”按钮后,逐步显示内容。

  1. .Box {
  2.     display: none;
  3. }
复制代码


### 4. jQuery 代码
以下是完整的 jQuery 代码,用于实现点击加载更多功能:

  1. var jQuery = jQuery.noConflict();

  2. (function() {
  3.     // 初始显示的内容数量
  4.     var itemNum = 13;
  5.    
  6.     // 初始显示前13个内容
  7.     showItem(0, itemNum);
  8.    
  9.     // 点击“加载更多”按钮
  10.     jQuery('.more').click(function() {
  11.         if (itemNum < 40) {
  12.             // 每次点击加载5个新内容
  13.             showItem(itemNum, itemNum + 5);
  14.             itemNum += 5;
  15.         } else {
  16.             // 如果所有内容都已显示,跳转到指定页面
  17.             location.href = 'portal.php?mod=list&catid=1';
  18.         }
  19.     });
  20.    
  21.     // 显示指定范围内的内容
  22.     function showItem(fromindex, toindex) {
  23.         var len = jQuery('.Box').length;
  24.         for (var i = fromindex; i < toindex && i < len; i++) {
  25.             jQuery('.Box').eq(i).css('display', 'block');
  26.         }
  27.     }
  28. })();
复制代码


### 5. 代码解释
- **`showItem(fromindex, toindex)`**: 这个函数用于显示从 `fromindex` 到 `toindex` 之间的内容项。通过 `jQuery('.Box').eq(i).css('display', 'block')` 来逐个显示内容。
  
- **`itemNum`**: 这个变量用于记录当前已经显示的内容数量。每次点击“加载更多”按钮时,`itemNum` 会增加5,表示每次加载5个新内容。

- **`jQuery('.more').click()`**: 这是点击“加载更多”按钮时触发的事件。如果 `itemNum` 小于40(假设总共有40个内容项),则继续加载内容;否则,跳转到指定页面。

### 6. 注意事项
- 确保 `.Box` 元素的总数大于 `itemNum` 的初始值(13),否则可能会出现无法加载更多内容的情况。
- 如果内容项的总数超过40个,可以根据实际情况调整 `itemNum` 的最大值。

### 7. 进一步优化
- 你可以通过 AJAX 动态加载更多内容,而不是一次性加载所有内容。这样可以减少页面初始加载时间。
- 如果内容项较多,可以考虑使用分页功能,而不是一次性加载所有内容。

### 8. AJAX 动态加载示例
如果你希望通过 AJAX 动态加载内容,可以参考以下代码:

  1. jQuery('.more').click(function() {
  2.     if (itemNum < 40) {
  3.         jQuery.ajax({
  4.             url: 'load_more_content.php', // 替换为你的后端接口
  5.             type: 'GET',
  6.             data: { start: itemNum, limit: 5 },
  7.             success: function(response) {
  8.                 jQuery('.content-container').append(response); // 将新内容追加到页面
  9.                 itemNum += 5;
  10.             }
  11.         });
  12.     } else {
  13.         location.href = 'portal.php?mod=list&catid=1';
  14.     }
  15. });
复制代码


在这个示例中,`load_more_content.php` 是一个后端接口,用于返回新的内容项。每次点击“加载更多”按钮时,会通过 AJAX 请求获取新的内容并追加到页面中。

希望这些信息对你有所帮助!如果你有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐

点我👉扫码添加站长微信,获取即时帮助!
点我👉扫码添加站长微信,获取即时帮助!
遇到问题别担心,添加站长微信,第一时间为您解决!专属客服在线等,享受一对一服务!

查看 »

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图

您的IP:18.219.145.197,GMT+8, 2025-3-29 09:45 , Processed in 0.304425 second(s), 82 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服
快速回复 返回顶部 返回列表