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>

目录
相关文章
|
4天前
|
自然语言处理 JavaScript 前端开发
探索JavaScript中的闭包:从基础概念到实际应用
本文深入探讨了JavaScript中闭包的概念,从定义、作用域链和实际应用等方面进行了详细阐述。通过生动的比喻和实例代码,帮助读者理解闭包在函数执行上下文中的重要性,以及如何在实际开发中有效利用闭包解决复杂问题。同时,文章也指出了过度使用闭包可能导致的潜在问题,并给出了相应的优化建议。
|
6天前
|
Web App开发 JavaScript 前端开发
JavaScript 模板字符串
JavaScript 模板字符串
12 3
|
12天前
|
JavaScript API 数据库
深入理解Node.js事件循环及其在后端开发中的应用
【9月更文挑战第3天】本文将深入浅出地介绍Node.js的事件循环机制,探讨其非阻塞I/O模型和如何在后端开发中利用这一特性来处理高并发请求。通过实际的代码示例,我们将看到如何有效地使用异步操作来优化应用性能。文章旨在为读者揭示Node.js在后端开发中的核心优势和应用场景,帮助开发者更好地理解和运用事件循环来构建高性能的后端服务。
|
14天前
|
缓存 JavaScript 前端开发
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
16 2
|
18天前
|
JavaScript 前端开发 API
揭秘现代前端开发秘籍:Vue.js与ES6如何联手打造惊艳应用?
【8月更文挑战第30天】本文介绍如何从零开始使用Vue.js与ES6创建现代前端应用。首先,通过简要介绍Vue.js和ES6的新特性,使读者了解这两者为何能有效提升开发效率。接着,指导读者使用Vue CLI初始化项目,并展示如何运用ES6语法编写Vue组件。最后,通过运行项目验证组件功能,为后续开发打下基础。适用于希望快速入门Vue.js与ES6的前端开发者。
34 3
|
16天前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
25 1
|
8天前
|
Web App开发 JavaScript 前端开发
JavaScript 模板字符串
JavaScript 模板字符串
10 0
|
16天前
|
JavaScript 前端开发 开发者
|
16天前
|
C# 开发者 测试技术
震惊!Xamarin 竟能如此构建跨平台应用程序,代码共享、界面设计与性能优化全攻略大揭秘!
【8月更文挑战第31天】在移动应用开发领域,跨平台工具日益受到青睐。Xamarin 是一款强大的工具,支持使用 C# 开发适用于 iOS、Android 和 Windows 的应用。通过安装 Visual Studio 或 Visual Studio for Mac,并创建 Xamarin 项目,开发者可以利用丰富的功能和工具进行开发。Xamarin 的主要优势在于代码共享,能够显著提高开发效率。
35 0
|
16天前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
27 0