今天给大家分享一下插件,我分为了两个,一个是自定义插件,另一一个是第三方插件;
先看看思维导图:
自定义插件我分为了三个案例
先看案例一的代码
案例一:两个对象的继承 $.extend()
var s1 = {}; var s2 = {"name":"癫癫","sex":"人妖"} console.info(s1.name,s1.sex); console.info(s2.name,s2.sex);
复制
效果是这样的
开始继承( $.extend())和继承后
var s1 = {}; var s2 = {"name":"癫癫","sex":"人妖"} // console.info(s1.name,s1.sex); // console.info(s2.name,s2.sex); //开始继承 $.extend(s1,s2);//s1继承自s2 // //继承后 console.info(s1.name,s1.sex); console.info(s2.name,s2.sex);
复制
效果图
现在开始我们的案例二
案例二:最大值(最小值)
代码如下
$.extend({ abcd:function(){ alert(123); }, getMax:function(a,b){ return a>b?a:b; }, getMin:function(a,b){ return a<b?a:b; } }); //调用类方法: //最大值 var max = $.getMax(10,15); console.info(max); //最小值 console.info($.getMin(22,34)); $.abcd();
复制
效果如下先是最大值后是最小值
案例三:
现在说一下全选功能,现在body这边写一些功能出来
<body> <h2>案例3:自定义插件全选功能</h2> <input type="button" value="全选" id="ok"> <input type="button" value="取消全选" id="nook"> <input type="checkbox" id="qx" />全选 <input type="checkbox" class="aaa" value="aaa" />aaa <input type="checkbox" class="aaa" value="bbb" />bbb <input type="checkbox" class="aaa" value="ccc" />ccc </body>
复制
接下来是要利用到 $.fn.extend(), $.fn.extend()扩展jquery对象是让下面更好的调用方法
$.fn.extend({ xx:function(){ //遍历 $(this).each(function(i,ck){//ck值每一个复选框 ck.checked = true;//让其选中 }) }, yy:function(){ //遍历 $(this).each(function(i,ck){//ck值每一个复选框 ck.checked = false;//让其选中 }) } })
复制
调用上面的全选功能
$("#ok").click(function(){ $(".aaa").xx(); // alert(1) }) $("#nook").click(function(){ $(".aaa").yy(); })
复制
效果如下:点击全选按钮就可以实现全选,若你点击取消全选也会取消全选,小伙伴们可以去试试
接下来给小伙伴们看看完善全选的代码以及效果:
这里是body那边的代码
<body> <h2>案例3:自定义插件全选功能</h2> <input type="checkbox" id="qx" />全选 <input type="checkbox" class="aaa" value="aaa" />aaa <input type="checkbox" class="aaa" value="bbb" />bbb <input type="checkbox" class="aaa" value="ccc" />ccc </body>
复制
代码如下:都标有注释的
//复选框选中 $("#qx").on("click",function(){ if($(this).is(":checked")){//说明全选框选中 $(".aaa").xx();//让其他复选框选中 } else{//有一个未选中全选框就不选中 $(".aaa").yy(); } }) //完善全选 //给所有其他复选框添加点击事件 $(".aaa").click(function(){ var f = true; //遍历 $(".aaa").each(function(i,ck){//ck值每一个复选框 if(ck.checked==false){ //只要有任何一个未选中 f = false; } //改变全选框的状态 $("#qx").prop("checked",f); }) })
复制
效果如下:如果你点了全选那个复选框的话就会全部帮你选中,若你全选后面任意一个取消了 “√” 的话那你全选复选框也会取消;若你没有点全选,是逐个 "√" 起来的,除了全选那个没勾的话它会自动帮你勾上
好的,现在自定义插件都说完了,现在来说一下第三方插件
表单验证插件
先来看看案例效果
如果你什么都不写,点提交按钮的话就会提示你,
好废话不多说,看看代码,先是看script那里的,引入jQuery表单验证时要在引入jQuery类库后面,插在前面是不行的
<script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <!-- 引入jquery表单验证 --> <script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
复制
来看看body部分,我这里是用了一个form表单,是为了记住文本框写过的东西
<body> <h2>案例:Query validation 插件表单验证</h2> <form id="myForm"> 用户名:<input type="text" name="uname" /><br /> 密码:<input type="text" name="upwd1" /><br /> 确认密码:<input type="text" name="upwd2" /><br /> 邮箱:<input type="text" name="uemail" /><br /> 年龄:<input type="text" name="uage" /><br /> 网址:<input type="text" name="uurl" /><br /> <input type="submit" value="提交" /> </form> </body>
复制
接下来看script里的
//案例:表单验证(姓名,年龄,密码,确认密码,邮箱,网址) $("#myForm").validate({ rules: { //字段规则部分 uname: { required: true, rangelength: [6, 10] }, upwd1: "required", upwd2: { required: true, equalTo: "#upwd1" }, uemail: { required: true, email: true }, uage: { required: true, range: [1, 150] }, uurl: { required: true, url: true } }, messages: { } })
复制
这样写的话出来的效果是这样的,全部是英文,并且提示也不是红色的
所以我们还要先写一个style如下:
<style type="text/css"> #myForm label.error { color: red; font-size: 14px; } </style>
复制
现在写了style之后效果是这样的
现在提示是红的了吧,现在提示还是英文的,说看不懂,这个简单 ,直接把rules:里面的代码复制到messages:这里面来,把改为中文就行了,小伙伴们看看是不是改一下中文就可以了,其他的和上面rules那里的没有什么区别
$("#myForm").validate({ rules: { //字段规则部分 uname: { required: true, rangelength: [6, 10] }, upwd1: "required", upwd2: { required: true, equalTo: "#upwd1" }, uemail: { required: true, email: true }, uage: { required: true, range: [1, 150] }, uurl: { required: true, url: true } }, messages: { //错误信息提示部分 uname: { required: "用户名必填", rangelength: "长度要在6-10之间" }, upwd1: "密码必填", upwd2: { required: "确认密码必填", equalTo: "两次密码不一致" }, uemail: { required: "邮箱必填", email: "邮箱格式错误" }, uage: { required: "年龄必填", range: "年龄在1-150岁之间" }, uurl: { required: "网址必填", url: "网址输入错误" } } })
复制
好了,来看看效果
ok,这就是今天的分享,谢谢观看