jQuery——插件

                    自定义插件

   1. $.extend
            【作用1】对象继承(拷贝):

                 $.extend(对象1,对象2)---->对象1继承对象2

案例

	<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
		<!-- 引入jQuery第三方表单验证插件  validata.js -->
		<script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			/*
			 * 区分java的类方法以及对象方法
			 * 	--类(静态)方法:例如DBHelper.getCon()
			 * 	public static Connection getConn(){
					Connection conn = null;
					try{
						conn = DriverManager.getConnection('jdbc:sqlserver://localhost:1433;DatabaseName=db_sb',SA,123);
					}catch(Exception e){
						
					}
					return conn;
				}
				
			 * 	--对象方法:StuDao sd = new StuDao(); sd.addStu();
			 */
 
			$(function() {
				/* 一、自定义插件 */
				// $.extend() 能够实现继承,能够扩展类方法(类似java的静态方法  直接可通过$工具调用)
				//1.1 $.extend()实现对象继承
				//案例1:两个对象的继承
				// var person = {
				// 	"name":"tangtang",
				// 	"sex":"女",
				// 	"age":19
				// };
				// console.log($.type(person));
				// var stu = {
				// 	"hobby":"吃喝玩乐"
				// };
				// console.log(person);
				// console.log(stu);
				// // 使用$.extend()来实现将stu继承person中的属性
				// $.extend(stu,person);
				// console.log(person);
				// console.log(stu);
 
				//extend(三个参数)
				// 第一个参数的对象继承后面所有参数的对象
				// var tqq = {
				// 	"love":100
				// }
				// console.log(tqq);
				// $.extend(tqq,stu,person);
				// console.log(person);
				// console.log(stu);
				// console.log(tqq);
 
				//1.2 $.extend()扩展jQuery类方法
				// 类方法===java中的静态方法  可以直接通过$.方法()
				$.extend({
					"mydemo": function() {
						console.log("糖糖编写的类方法");
					}
				});
 
				// 调用拓展的类方法
				$.mydemo();

【作用2】扩展jQuery类方法:

                         $.extend( {方法名:function(){ 方法体  } } )
              注:多个方法之间用逗号隔开

	//案例2:求最大值(最小值)
				$.extend({
					// 实现最大值的类方法制作
					// "myMax":function(a,b){
					// 	return a>b?a:b;
					// }
					// arguments 数组容器,可以存储函数中的参数个数
					"myMax": function() {
						var max = arguments[0];
						if (arguments.length > 0) {
							for (var i = 0; i < arguments.length; i++) {
								if (arguments[i] > max) {
									max = arguments[i];
								}
							}
						} else {
							return arguments.length;
						}
						return max;
					},
					"myMin": function() {
						var min = arguments[0];
						if (arguments.length > 0) {
							for (var i = 0; i < arguments.length; i++) {
								if (arguments[i] < min) {
									min = arguments[i];
								}
							}
						} else {
							return arguments.length;
						}
						return min;
					}
 
				});
 
 
				// console.log($.myMax(60,80));
				// console.log($.myMax(20,40,80));
				// console.log($.myMin(20,30,40));
				// console.log($.myMax());
 
				//1.3 $.fn.extend()扩展jQuery对象方法
				$.fn.extend({
					"demo1": function() {
						console.log("这是我拓展的某个对象的方法");
					}
				});
 
				$("#obtn1").click(function() {
					// $(this).demo1();
					$.fn.demo1();
				});
				//1.3 $.fn.extend()扩展jQuery对象方法
				$.fn.extend({
					"demo1": function() {
						console.log("这是我拓展的某个对象的方法");
					}
				});
 
				$("#obtn1").click(function() {
					// $(this).demo1();
					$.fn.demo1();
				});
 
 
 
 
 
				//案例3:实现全选效果
				// 通过$.fn.extend()扩展一个对象方法(作用:实现全选)
				$.fn.extend({
					"mycheck": function() {
						// console.log($(this));
						$(this).each(function() {
							// console.log($(this).val());
							// 调用prop属性设置选中
							$(this).prop("checked", true);
						});
					},
					"unmycheck": function() {
						$(this).each(function() {
							// console.log($(this).val());
							// 调用prop属性设置选中
							$(this).prop("checked", false);
						});
					}
				});
 
				//为全选按钮设置一个点击事件并调用对象方法
				$("#qx").click(function() {
					// $("input:checkbox") 得到的是所有的复选框
					$("input:checkbox").mycheck();
				});
				// 取消全选
				$("#unqx").click(function() {
					// $("input:checkbox") 得到的是所有的复选框
					$("input:checkbox").unmycheck();
				});

第三方插件

 表单验证
            插件名:jQuery Validation
            使用步骤
                【1】.下载jQuery插件验证库
                                    jquery.validate.js
                【2】.将类库引入页面
                【3】.两种方式使用验证
                             HTML标签属性方式
                             JS方式【推荐】
  JS方式
         验证及错误信息
                            $("表单元素").validate({
                                 rules:{
                                  字段验证规则
                                 },
                               messages:{
                                  字段错误信息
                                }
                                   })
        错误样式
                      表格元素  label.error{
                                    样式
                                 }
                     
   验证规则说明  

	/* 二、第三方插件:表单验证插件 */
				//案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
			})
		</script>
 
		<!-- 第三方插件(表单验证) -->
		<script type="text/javascript">
			$(document).ready(function() {
				// 获取表单标签调用设置插件的方法
				$("#myForm").validate({
					// 规则rules
					rules: {
						// 账号username
						username: {
							required: true
						},
						// 验证邮箱规则
						myeamil: {
							required: true,
							email: true
						}
					},
					// 自定义错误信息messages
					messages: {
						// 账户的错误信息提示
						username: {
							required: "用户名不能为空哦~~~"
						},
						myeamil: {
							required: "邮箱不能为空~~~",
							email: "邮箱的格式不满足要求哦~~~"
						}
					}
				});
			})
		</script>

完整代码如下


				/* 二、第三方插件:表单验证插件 */
				//案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
			})
		</script>
 
		<!-- 第三方插件(表单验证) -->
		<script type="text/javascript">
			$(document).ready(function() {
				// 获取表单标签调用设置插件的方法
				$("#myForm").validate({
					// 规则rules
					rules: {
						// 账号username
						username: {
							required: true
						},
						// 验证邮箱规则
						myeamil: {
							required: true,
							email: true
						}
					},
					// 自定义错误信息messages
					messages: {
						// 账户的错误信息提示
						username: {
							required: "用户名不能为空哦~~~"
						},
						myeamil: {
							required: "邮箱不能为空~~~",
							email: "邮箱的格式不满足要求哦~~~"
						}
					}
				});
			})
		</script>
完整代码如下
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#myForm .error {
				color: plum;
				font-size: 12px;
				/* margin-left: 10px; */
			}
		</style>
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
		<!-- 引入jQuery第三方表单验证插件  validata.js -->
		<script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			/*
			 * 区分java的类方法以及对象方法
			 * 	--类(静态)方法:例如DBHelper.getCon()
			 * 	public static Connection getConn(){
					Connection conn = null;
					try{
						conn = DriverManager.getConnection('jdbc:sqlserver://localhost:1433;DatabaseName=db_sb',SA,123);
					}catch(Exception e){
						
					}
					return conn;
				}
				
			 * 	--对象方法:StuDao sd = new StuDao(); sd.addStu();
			 */
 
			$(function() {
				/* 一、自定义插件 */
				// $.extend() 能够实现继承,能够扩展类方法(类似java的静态方法  直接可通过$工具调用)
				//1.1 $.extend()实现对象继承
				//案例1:两个对象的继承
				// var person = {
				// 	"name":"tangtang",
				// 	"sex":"女",
				// 	"age":19
				// };
				// console.log($.type(person));
				// var stu = {
				// 	"hobby":"吃喝玩乐"
				// };
				// console.log(person);
				// console.log(stu);
				// // 使用$.extend()来实现将stu继承person中的属性
				// $.extend(stu,person);
				// console.log(person);
				// console.log(stu);
 
				//extend(三个参数)
				// 第一个参数的对象继承后面所有参数的对象
				// var tqq = {
				// 	"love":100
				// }
				// console.log(tqq);
				// $.extend(tqq,stu,person);
				// console.log(person);
				// console.log(stu);
				// console.log(tqq);
 
				//1.2 $.extend()扩展jQuery类方法
				// 类方法===java中的静态方法  可以直接通过$.方法()
				$.extend({
					"mydemo": function() {
						console.log("糖糖编写的类方法");
					}
				});
 
				// 调用拓展的类方法
				$.mydemo();
				//案例2:求最大值(最小值)
				$.extend({
					// 实现最大值的类方法制作
					// "myMax":function(a,b){
					// 	return a>b?a:b;
					// }
					// arguments 数组容器,可以存储函数中的参数个数
					"myMax": function() {
						var max = arguments[0];
						if (arguments.length > 0) {
							for (var i = 0; i < arguments.length; i++) {
								if (arguments[i] > max) {
									max = arguments[i];
								}
							}
						} else {
							return arguments.length;
						}
						return max;
					},
					"myMin": function() {
						var min = arguments[0];
						if (arguments.length > 0) {
							for (var i = 0; i < arguments.length; i++) {
								if (arguments[i] < min) {
									min = arguments[i];
								}
							}
						} else {
							return arguments.length;
						}
						return min;
					}
 
				});
 
 
				// console.log($.myMax(60,80));
				// console.log($.myMax(20,40,80));
				// console.log($.myMin(20,30,40));
				// console.log($.myMax());
 
				//1.3 $.fn.extend()扩展jQuery对象方法
				$.fn.extend({
					"demo1": function() {
						console.log("这是我拓展的某个对象的方法");
					}
				});
 
				$("#obtn1").click(function() {
					// $(this).demo1();
					$.fn.demo1();
				});
 
 
 
 
 
				//案例3:实现全选效果
				// 通过$.fn.extend()扩展一个对象方法(作用:实现全选)
				$.fn.extend({
					"mycheck": function() {
						// console.log($(this));
						$(this).each(function() {
							// console.log($(this).val());
							// 调用prop属性设置选中
							$(this).prop("checked", true);
						});
					},
					"unmycheck": function() {
						$(this).each(function() {
							// console.log($(this).val());
							// 调用prop属性设置选中
							$(this).prop("checked", false);
						});
					}
				});
 
				//为全选按钮设置一个点击事件并调用对象方法
				$("#qx").click(function() {
					// $("input:checkbox") 得到的是所有的复选框
					$("input:checkbox").mycheck();
				});
				// 取消全选
				$("#unqx").click(function() {
					// $("input:checkbox") 得到的是所有的复选框
					$("input:checkbox").unmycheck();
				});
 
 
				/* 二、第三方插件:表单验证插件 */
				//案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
			})
		</script>
 
		<!-- 第三方插件(表单验证) -->
		<script type="text/javascript">
			$(document).ready(function() {
				// 获取表单标签调用设置插件的方法
				$("#myForm").validate({
					// 规则rules
					rules: {
						// 账号username
						username: {
							required: true
						},
						// 验证邮箱规则
						myeamil: {
							required: true,
							email: true
						}
					},
					// 自定义错误信息messages
					messages: {
						// 账户的错误信息提示
						username: {
							required: "用户名不能为空哦~~~"
						},
						myeamil: {
							required: "邮箱不能为空~~~",
							email: "邮箱的格式不满足要求哦~~~"
						}
					}
				});
			})
		</script>
 
 
	</head>
	<body>
		<h2>
			案例3:自定义插件实现全选功能
		</h2>
		<button id="obtn1">演示</button>
		<hr>
		<button id="qx">全选</button>
		<button id="unqx">取消全选</button>
		<br>
		<input type="checkbox" value="aa">傻逼
		<input type="checkbox" value="bb">傻儿
		<input type="checkbox" value="cc">傻子
		<input type="checkbox" value="dd">傻傻
		<input type="checkbox" value="ee">莎莎
		<h2 align="center">
			案例4:使用jQuery validation插件完成表单验证
		</h2>
 
		<form action="" method="get" id="myForm">
			账号: <input type="text" autocomplete="off" id="username" name="username">
			<br>
			邮箱: <input type="email" id="myeamil" name="myeamil">
			<br>
			密码: <input type="password">
			<br>
 
			<input type="submit" value="注册" />
		</form>
 
 
 
	</body>
</html>

思维导图小结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值