实用的 jquery 小插件

  1 /**
  2  * ----------------------------------------------------
  3  * 实用的 jquery 插件方法
  4  * @QQ 617937424
  5  * @寄语 不要重复写同样的代码,学会封装成方法,慢慢积累,提高效率。
  6  * ----------------------------------------------------
  7  */
  8
  9
 10 /**
 11  * 全选/反选
 12  *
 13  * html结构:
 14  <div id="checkboxParent">
 15      <input type="checkbox" />
 16      <input type="checkbox" />
 17  </div>
 18  <label><input type="checkbox" id="checkAll" />全选</label>
 19  <label><input type="checkbox" id="checkRev" />反选</label>
 20  * 调用:$(‘#checkAll‘).checkAll(‘#checkboxParent‘, ‘#checkRev‘);
 21  * 参数说明: $(控制全选的checkbox).checkAll(被操控的checkbox父级, [控制反选的checkbox]);
 22  */
 23 $.fn.checkAll = function(checkbox, rev){
 24     return this.each(function(){
 25         var $this = $(this);
 26         $this.click(function(){
 27             if(this.checked){
 28                 $(checkbox).find(":checkbox").prop("checked", true);
 29                 if(rev) $(rev).prop("checked", false);
 30             }else{
 31                 $(checkbox).find(":checkbox").prop("checked", false);
 32             }
 33         });
 34         //如果有反选
 35         if(rev){
 36             $(rev).click(function(){
 37                 $(checkbox+‘>:checkbox‘).each(function(){
 38                     this.checked = !this.checked;
 39                 });
 40                 if(this.checked){
 41                     $this.prop("checked", false);
 42                 }
 43             });
 44
 45         }
 46
 47     });
 48 }
 49
 50 /**
 51  * 弹出bootstrap模态窗
 52  *
 53  * html结构:
 54 <div id="loginBox" style="display:none">
 55     用户名:<input type="text" name="usrname" /><br/>
 56     密码:<input type="password" name="password" />
 57 </div>
 58  * 调用: $(‘#loginBox‘).showModal({action: ‘login.php‘, title: ‘用户登录‘});
 59  * 参数说明: $(弹窗内容的父级).showModal({action: 提交url, title: 窗口标题, [footer: 弹窗页脚html] }, [bootstrap模态窗参数]);
 60  */
 61 $.fn.showModal = function(data, options){
 62     var $this = $(this);
 63     var modalId = $this.attr("id") + ‘AutoModal‘;
 64     if($this.attr(‘data-lock‘) != 1){
 65         var modalHtml = ‘<div class="modal fade" id="‘+ modalId +‘" role="dialog"> 66               <div class="modal-dialog"> 67                 <div class="modal-content"> 68                   <div class="modal-header"> 69                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 70                     <h4 class="modal-title">title</h4> 71                   </div> 72                   <form class="form-horizontal" method="post"> 73                   <div class="modal-body">body</div> 74                   <div class="modal-footer" style="margin-top:0"> 75                     <button type="button" class="btn btn-default" data-dismiss="modal">取消</button> 76                     <button type="submit" data-loading-text="处理中..." class="btn btn-primary">确定</button> 77                   </div> 78                   </form> 79                 </div> 80               </div> 81             </div>‘;
 82         var content = $this.children();
 83         $this.html(modalHtml).find(‘.modal-body‘).html(content)
 84         $this.attr(‘data-lock‘, 1);
 85     }
 86     $this.show();
 87     $modal = $(‘#‘+ modalId);
 88     $modal.find(‘.modal-title‘).html(data.title);
 89     $modal.find(‘form‘).attr("action", data.action);
 90     if(typeof data.footer !== ‘undefined‘){
 91         $modal.find(‘.modal-footer‘).html(data.footer);
 92     }
 93     return this.each(function(){
 94         $modal.modal(options || ‘show‘);
 95     });
 96 }
 97
 98
 99
100 /**
101  * 把json数据填充到from表单中
102  *
103  * html结构:
104 <form id="editForm" action="user.php">
105     用户名:<input type="text" name="usrname" /><br/>
106     地址:<input type="text" name="address" /><br/>
107     性别:<input type="radio" name="sex" value="0" />男&nbsp;<input type="radio" name="sex" value="1" />女<br/>
108     爱好:<input type="checkbox" name="hobby[]" value="sing" />唱歌&nbsp;
109          <input type="checkbox" name="hobby[]" value="code" />写代码&nbsp;
110          <input type="checkbox" name="hobby[]" value="trance" />发呆
111 </form>
112  * 调用: $(‘#editForm‘).formEdit({ "usrname":"张三", "address":"湖北钟祥", "sex": "1", "hobby":["sing", "trance"]});
113  * 参数说明: $(form表单).formEdit(json数据);
114  * json数据说明:基本格式{inputname: value}, 具体类型{"text":"aaa", "checkbox":[1,2,3], "radio":"10"}
115  */
116 $.fn.formEdit = function(data){
117     return this.each(function(){
118         var input, name;
119         if(data == null){this.reset(); return this; }
120         for(var i = 0; i < this.length; i++){
121             input = this.elements[i];
122             //checkbox的name可能是name[]数组形式
123             if(input.type == "checkbox"){
124                 name = input.name.replace(/(.+)\[\]$/, "$1");
125             }else{
126                 name = input.name;
127             }
128             if(data[name] == undefined) continue;
129             switch(input.type){
130                 case "checkbox":
131                     if(data[name] == ""){
132                         input.checked = false;
133                     }else{
134                         //数组查找元素
135                         if(data[name].indexOf(input.value) > -1){
136                             input.checked = true;
137                         }else{
138                             input.checked = false;
139                         }
140                     }
141                 break;
142                 case "radio":
143                     if(data[name] == ""){
144                         input.checked = false;
145                     }else if(input.value == data[name]){
146                         input.checked = true;
147                     }
148                 break;
149                 default: input.value = data[name];
150             }
151         }
152     });
153 };
154
155
156 /**
157  * get方式异步提交并处理返回数据
158  *
159  * html结构:
160 <a data-edit="id=110">编辑110</a>
161 <a data-edit="id=112">编辑112</a>
162  * 调用: $(‘[data-edit]‘).eidtRecord(‘abc.php‘, function(data){ alert(‘success‘); }, false);
163  * 参数说明: $(带有get参数值的按钮).eidtRecord(请求的url, jquery的ajax回调方法, 是否显示确认对话框);
164  */
165 $.fn.eidtRecord  = function(url, func, warn){
166     if(typeof func != ‘function‘){
167         func = function(data){
168             if(data.status){location.reload();}else{alert(data.info);}
169         }
170     }
171     warn = warn || false;
172     var attr = this.selector.replace(/\[(.+)\]$/, "$1");
173     return this.each(function(){
174         var $this = $(this);
175         $this.click(function(){
176             if(warn){
177                 if(!confirm(‘确认操作,今生无悔?‘)) return;
178             }
179             $.get(url, $this.attr(attr), func, ‘json‘);
180         });
181     });
182
183 }
184
185
186
187 /**
188  * 异步提交表单
189  *
190  * html结构:
191  * <form id="form"><input type="text" name="username" value="test" /><button type="submit">提交<button></form>
192  * 调用: $(‘#form‘).ajaxForm(function(data){ alert(‘success‘); });
193  * 参数说明: $(表单).ajaxForm(jquery的ajax回调方法);
194  */
195 $.fn.ajaxForm = function(func){
196     if(typeof func != ‘function‘){
197         func = function(data){
198             if(data.status){location.reload(); }else{alert(data.info);}
199         }
200     }
201     return this.each(function (){
202         var $this = $(this);
203         $this.live(‘submit‘,function(){
204             $.post($this.attr(‘action‘), $this.serialize(), func, ‘json‘);
205             return false;
206         });
207     })
208 };
209
210
211 /**
212  * 表单的action带有get参数时,又要追加表单中填写的参数时,可用此方法
213  *
214  * html结构:
215 <form id="form" action="index.php?act=test">
216     <input type="text" name="username" value="张三" />
217     <button type="submit">提交<button>
218 </form>
219  * 调用: $(‘#form‘).formLocation();
220  * 参数说明: $(表单).formLocation();
221  */
222 $.fn.formLocation = function(){
223     return this.each(function (){
224         var $this = $(this);
225         $this.submit(function(){
226             window.location = $this.attr(‘action‘) + ‘&‘ + $this.serialize();
227             return false;
228         });
229     })
230 };

实用的 jquery 小插件,布布扣,bubuko.com

时间: 2024-10-01 08:48:54

实用的 jquery 小插件的相关文章

大爱jQuery,10款漂亮实用的jQuery/CSS3插件(整合免积分下载)

整合下载地址:http://download.csdn.net/detail/yangwei19680827/7343001 jQuery真的是一款很犀利的Javascript框架,利用jQuery我们可以做出很多非常酷而且实用的应用插件,我真的很爱jQuery,下面的这10款jQuery插件你也一定会喜欢的. 1.jquery鼠标悬停变暗突出显示特效 jquery鼠标悬停变暗突出显示特效是一款效果非常棒的jquery带开关灯效果的jquery相册插件Album 在线演示    /    源码下

强大实用的jQuery幻灯片插件Owl Carousel

演 示 下 载 简介 Owl Carousel 是一个强大.实用但小巧的 jQuery 幻灯片插件,它具有一下特点: 兼容所有浏览器 支持响应式 支持 CSS3 过度 支持触摸事件 支持 JSON 及自定义 JSON 格式 支持进度条 支持自定义事件 支持延迟加载 支持自适应高度 …… Owl Carousel 提供了众多的参数.回调函数及自定义事件(具体请往下浏览),所以它几乎可以满足你的所有要求. 兼容 浏览器兼容:兼容所有浏览器,包括 IE6.IE7. jQuery 兼容:兼容 1.7 及

简单实用的jQuery分页插件

在做商城和订单管理的时候,常常会用到分页功能,所以我封装了一个jQuery的分页插件,该插件主要实现上下翻页,输入数字跳转等功能. 具体实现如下: 输入参数需要当前页码pageNo,总页码totalPage,回调函数callback. 主要的实现有两个函数,一个是根据当前页和总页数生成相应的html的代码,一个是事件绑定及回调函数的执行. creatHtml函数: creatHtml:function(){ var me=this; var content=""; //当前页码 var

自己手写简约实用的Jquery tabs插件(基于bootstrap环境)

一直想改版网站首页的图书展示部分,以前的展示是使用BootStrap的传统的collapse,网页篇幅占用大,也不够美观,操作也相对来说比较麻烦.于是有了自己利用Jquery来做一个图书展示的tabs的想法,之前也在网上找了半天,并不是很满意. 下面来看看我的实现过程: 首先是HTML部分,HTML部分按照结构简约,突出干货的思路来设计.选项卡使用了列表,在列表中插入了超链接,当然这里的超链接只是作为按钮使用的,当点击任何一个链接,就切换到对应的选项卡.选项卡的内容部分直接使用DIV,将图书的展

喜欢的jQuery小插件

马赛克动画还原:把这个代码放在一个 a.html就可以直接看到效果啦 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/popup.css"> <title>马赛克动画还原</title> &

5个时尚实用的jquery/css3插件及源码

%E6%8A%80%E6%9C%AF%E8%A1%8C%E4%B8%9A%E5%8D%81%E5%A4%A7%E8%BF%87%E6%97%B6%E6%8A%80%E8%83%BD%E5%88%AB%E6%8C%87%E6%9C%9B%E9%9D%A0%E5%AE%83%E4%BB%AC%E6%9D%A5%E6%89%BE%E5%B7%A5%E4%BD%9C http://www.zcool.com.cn/collection/ZMTY5MDcyMTY/ http://www.zcool.com

浮动【电梯】或【回到顶部】小插件:iElevator.js

iElevator.js 是一个jquery小插件,使用简单,兼容IE6,支持UMD和3种配置方式,比锚点更灵活. Default Options _defaults = { floors: null, btns: null, backtop: null, selected: '', sticky: -1, visible: { isHide: 'no', numShow: 0 }, speed: 400, show: function(me) { me.element.show(); }, h

原创新闻 11 个最佳 jQuery 滚动条插件

通过jQuery滚动条插件,你可以换掉千篇一律的默认浏览器滚动条,让你的网站或web项目更具特色,更有吸引力.本文收集了11款非常漂亮.实用的jQuery滚动条插件,你可以轻松将它们应用在自己的网站中. 1.  Windows:全屏窗口滚动插件 该插件可以很好地实现全屏滚动,每滚动一次即为一屏.比如,用户浏览下一屏幕内容时,只需手动滚动到某一位置,该插件会自动滚动显示下一屏全部内容.对于浏览类似于PPT的内容时比较实用. 2.  Jquery Scroll Follow:滚动跟随插件 该插件可以

图片轮播小插件

在手上工作完成之余,自己写了一个jQuery小插件,针对我们现在所用到的图片轮播特效进行一个封装,没事就写写,记录我的前端历程上的点点滴滴. 编写背景: 在web端经常会看到图片滚来滚去的,自己就想一个方式,让前端团队开发这些特效时间更快,效果更好,实现特效的方式更多,可以随意替换图片轮播的方式,兼容各个浏览器,是我的初衷,也是对自己的js编程经验一个积攒,我相信带着兴趣做自己喜欢的事,是工作生活的初衷意义... 插件介绍: 本“小插”是基于jQuery上进行开发,对所播放的图片大小做了自适应,