jquery, bootstrap 和它们的插件们
Table of Contents
JQuery
jQuery 是一个 JavaScript 函数库。jQuery 库包含以下特性:
- HTML 元素选取
- HTML 元素操作
- CSS 操作
- HTML 事件函数
- JavaScript 特效和动画
- HTML DOM 遍历和修改
- AJAX
- Utilities
JQuery UI
- jQuery UI 是 jQuery 的一部分, 是在jQuery之上的一套专门用于UI交互的类库.
- 使用jQuery UI可以实现底层交互, 各种高级特效, 动画, 并且可定制主题.
基于 JQuery UI 编写插件 - 定义插件
$.widget("nmk.progressbar", { options: { value: 0 }, _create: function() { this.element.addClass("progressbar"); this._update(); }, _setOption: function(key, value) { this.options[key] = value; this._update(); }, _update: function() { var progress = this.options.value + "%"; this.element.text(progress); //trigger a event when progressbar is complate if(this.options.value == 100){ this._trigger('complete',null,{value:100}); } }, _destroy:function(){ this.element .removeClass('progressbar') .text(""); $.Widget.prototype.destroy.call(this); } });
基于 JQuery UI 编写插件 - 使用插件
$('.loadding').progressbar( {value:1, complate: function(){ console.log('complete event has been triggered!'); //you can return false or true ; } });
基于 JQuery UI 编写插件 - 代码说明
- options:在这里面保存的是widget的配置信息,在创建widget的时候需要设置一些配置参数。
- element:就是widget作用的dom对象。
- _create() 这个方法就是创建widget的方法,在页面调用widget的时候,就会执行此方法,来构建widget。Widget的绝大大多数行为和结构都是在这里创建的。
- _setOption():此方法提供了options的属性的设置。
- _trigger一般用来回调用户传入options的callback。在插件内部调用_trigger(‘myEvent’)即相当于调用options里面的myEvent这个回调函数。
- _destroy():将widget实例从dom对象上移除,在开发widget的时候一般此方法是必须的。就是移除你自己在dom element上添加的样式和行为以及dom结构
JQuery UI Portlet
$('#portlet-demo').portlet('option', 'add', { position: { x: 0, y: 1 }, portlet: { attrs: { id: '$portlet.id', itemId: '$portlet.itemId' }, title: '我的任务', singleView:{ enable: function (){ $('#myWork_portletDiv').hide(); $('#myWork_pageDiv').show(); }, recovery: function (){ $('#myWork_portletDiv').show(); $('#myWork_pageDiv').hide(); } }, content: { type: 'ajax', url:'#springUrl('/resources/portletTemplate/')myWork.html', } }});
Bootstrap
- Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。
- Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。在现代 Web 开发中,有几个几乎所有的 Web 项目中都需要的组件。Bootstrap 为您提供了所有这些基本的模块 - Grid、Typography、Tables、Forms、Buttons 和 Responsiveness。
- 此外,还有大量其他有用的前端组件,比如 Dropdowns、Navigation、Modals、Typehead、Pagination、Carousal、Breadcrumb、Tab、Thumbnails、Headers 等等。
- 有了这些,你可以搭建一个 Web 项目,并让它运行地更快速更轻松。
Bootstrap弹出效果 - 页面初始化代码
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h5 id="myModalLabel">弹出标题</h5> </div> <div class="modal-body"> <p>中间显示的内容</p> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">取消</button> <button class="btn btn-primary">确定</button> </div> </div>
Bootstrap弹出效果 - 设置初始化样式
<script> $(function(){ $('#myModal').modal({ backdrop:false, keyboard:true, show:false }); }); </script>
初始化参数介绍:
- backdrop(默认true):为模态对话框添加一个背景元素。
- keyboard(默认true):按下esc键时关闭模态对话框。
- show(默认true):初始化时即显示模态对话框。
Bootstrap弹出效果 - 点击事件
<a href="javascript:void(0);" onclick="showDiv();">弹出</a> function showDiv(){ $('#myModal').modal('show'); }
Bootstrap分页
function listSalesNoticeInPage(container, page) { $.ajax({ url : "/salesNotice/queryByGroup.json?page="+page+"&pageSize="+20+"&date="+new Date(), dataType : "json", async:false, success : function(data) { var result = ""; if (data.rows != null) { $.each(data.rows, function() { row += "<td>" + new Date(this.updateTime).format('yyyy-MM-dd hh:mm:ss') + "</td>"; } container.empty().append(result); var totalPages = Math.ceil(data.total/20); var pagerOptions = { bootstrapMajorVersion : 3, currentPage : page, numberOfPages : 10, totalPages : totalPages<=0?1:totalPages, onPageClicked : function(e, originalEvent, type, page) { e.stopImmediatePropagation(); listSalesNoticeInPage(container, page); }, tooltipTitles: function (type, page, current) { switch (type) { case "first": return "首页"; }; $('#salesNotice_pager').bootstrapPaginator(pagerOptions); } }); }
FCBKcomplete
$("#publishWork_taskAssignerErpLbl").fcbkcomplete({ json_url: "/ldap/fcsearch", addontab: true, maxitems: 100, input_min_size: 2, height: 10, cache: false, newel: false, filter: false, complete_text: "输入电子邮件(@符号的前半部分)进行模糊查找..." });