doT.js模板和pagination分页应用

简介: doT.js模板和pagination分页应用博客中模拟了数据加载初始化的过程。doT.js渲染每一项内容的数据项。示例如下: {{~it.bean:value:index }} {{=value.

doT.js模板和pagination分页应用

博客中模拟了数据加载初始化的过程。
doT.js渲染每一项内容的数据项。示例如下:

<script id="Messtmpl" type="text/x-dot-template"> 
    {{~it.bean:value:index }}
    <div class="MessListItem {{?value.read}}on{{?}}" mid="{{=value.id}}">
        <strong>{{=value.title}}</strong>
        <div class="words cls">
            <p>{{=value.message}}</p>
            <label>{{=value.time}}</label>
        </div>
        <a class="closed">X</a>
    </div>
    {{~}}
</script>



pagination分页插件的使用,示例如下:

MessPage.pagination(total, {
    callback: initPage, 
    prev_text: "«",
    next_text: "»",
    items_per_page: pageSide, 
    num_edge_entries: 1, 
    num_display_entries: 10, 
    current_page: current
});

参数说明:
callback:回调方法,点击分页按钮的时候执行。
prev_text:上一页按钮中的文字显示内容。
next_text:下一页按钮中的文字显示内容。
items_per_page: 每一页中显示的条数。
num_edge_entries:首尾两侧分页的条数。
num_display_entries:分页主体显示的条数。
current_page:: 当前页数。


DEMO:

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dot.js和pagination分页应用</title> <style> *{margin: 0px; padding: 0px;} .cls{*zoom:1} .cls:after{display:block;overflow:hidden;clear:both;height:0;visibility:hidden;content:"."} .MessList{width: 960px;margin: 100px auto 10px; color: #333;} .MessList .on{ font-weight: bold; } .MessListItem{ position: relative; border:1px solid #f1f1f1; padding: 20px 30px; margin-top: -1px; cursor: pointer; } .MessListItem strong{ display:block; font-size: 16px; margin-bottom: 10px; } .MessListItem .words{ } .MessListItem p{ float: left; width: 700px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; margin-right: 30px; } .MessListItem label{ float: right; text-align: right; } .MessListItem .closed{ position: absolute; right: 0px; top: 0px; z-index: 0; display: block; width: 20px; height: 20px; line-height: 20px; text-align: center; color: #333; border: 1px solid #333; background: #999; cursor: pointer; } .MessListItem .closed:hover{ color: #f00; border: 1px solid #f00; background: #fee; } .MessPage{ width: 960px; margin: 0px auto; } </style> </head> <body> <div id="MessList" class="MessList"></div> <div id="MessPage" class="MessPage pagination"></div> <script id="Messtmpl" type="text/x-dot-template"> {{~it.bean:value:index }} <div class="MessListItem {{?value.read}}on{{?}}" mid="{{=value.id}}"> <strong>{{=value.title}}</strong> <div class="words cls"> <p>{{=value.message}}</p> <label>{{=value.time}}</label> </div> <a class="closed">X</a> </div> {{~}} </script> <script src="http://files.cnblogs.com/kuikui/jquery-1.10.2.min.js"></script> <script src="http://files.cnblogs.com/kuikui/dot.min.js"></script> <link rel="stylesheet" href="http://files.cnblogs.com/kuikui/pagination.css" /> <script src="http://files.cnblogs.com/kuikui/pagination.min.js"></script> <script type="text/javascript"> $(function(){ var data = { code:1, bean:[{ title: "标题1", message: "标题1,你好,欢迎。。。", time: "2013-1-21 12:00:00", read: false }] }; for(var i = 0,l =1000;i<l;i++){ data.bean[i] = { id: (i+1), title: "标题" + (i+1), message: (i+1)+"现在,浏览器几乎是静如止水的市场。IE、360、Chrome、Firefox、遨游、百度和QQ浏览器的份额已多年未变。除了春运之外,浏览器玩家们也比较安静。近日则出现了一条重磅消息:遨游浏览器出大招了,发明并推出了广告快进技术。通过这项技术,用户可以对视频前、中插入的广告进行快进。", time: "2013-1-21 12:00:00", read: i<15?true:false } } var MessList = $("#MessList"); var MessPage = $("#MessPage"); var total = data.bean.length; // 总条数 var current = 0; // 当前页 var pageSide = 10; // 每页几条数据 var unRead = 15; // 未读消息 var MessText = doT.template($("#Messtmpl")[0].text); function initPage(i){ current = i; var dataTen = {}; dataTen.bean = []; var count = 0; while(count<10){ dataTen.bean.push(data.bean[count+(i*pageSide)]); count++; } MessList.html(MessText(dataTen)); } MessPage.pagination(total, { callback: initPage, prev_text: "«", next_text: "»", items_per_page: pageSide, // 每页显示的条目数 num_edge_entries: 1, //两侧首尾分页条目数 num_display_entries: 10, //连续分页主体部分分页条目数 current_page: current, //当前页索引 }); initPage(current); }); </script> </body> </html>

目录
相关文章
|
1月前
|
开发框架 前端开发 JavaScript
使用JavaScript、jQuery和Bootstrap构建待办事项应用
使用JavaScript、jQuery和Bootstrap构建待办事项应用
13 0
|
1月前
|
自然语言处理 JavaScript 前端开发
探索JavaScript中的闭包:理解其原理与实际应用
探索JavaScript中的闭包:理解其原理与实际应用
19 0
|
2月前
|
移动开发 JavaScript 前端开发
分享48个JS分页代码特效,总有一款适合您
分享48个JS分页代码特效,总有一款适合您
37 0
|
1月前
|
JavaScript 前端开发 算法
js开发:请解释什么是虚拟DOM(virtual DOM),以及它在React中的应用。
虚拟DOM是React等前端框架的关键技术,它以轻量级JavaScript对象树形式抽象表示实际DOM。当状态改变,React不直接操作DOM,而是先构建新虚拟DOM树。通过高效diff算法比较新旧树,找到最小变更集,仅更新必要部分,提高DOM操作效率,降低性能损耗。虚拟DOM的抽象特性还支持跨平台应用,如React Native。总之,虚拟DOM优化了状态变化时的DOM更新,提升性能和用户体验。
23 0
|
1月前
egg.js 24.13sequelize模型-字段限制排序分页
egg.js 24.13sequelize模型-字段限制排序分页
24 1
egg.js 24.13sequelize模型-字段限制排序分页
|
10天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
29天前
|
开发框架 JavaScript 前端开发
描述JavaScript事件循环机制,并举例说明在游戏循环更新中的应用。
JavaScript的事件循环机制是单线程处理异步操作的关键,由调用栈、事件队列和Web APIs构成。调用栈执行函数,遇到异步操作时交给Web APIs,完成后回调函数进入事件队列。当调用栈空时,事件循环取队列中的任务执行。在游戏开发中,事件循环驱动游戏循环更新,包括输入处理、逻辑更新和渲染。示例代码展示了如何模拟游戏循环,实际开发中常用框架提供更高级别的抽象。
13 1
|
1月前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
18 6
|
1月前
|
JavaScript 前端开发
HTML JS 应用
HTML JS 应用
19 3
|
1月前
|
JavaScript 前端开发 算法
Vue.js的单向数据流:让你的应用更清晰、更可控
Vue.js的单向数据流:让你的应用更清晰、更可控