本课代码 原码(自定义插件和第三方插件)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery_05插件机制</title>
<!-- 引入jQuery库 -->
<!-- 课前回顾
1.事件加载DOM两种方式(顺序+个数)
绑定事件的两种方式
元素.事件名(回调函数)
元素.on/bind(事件名,回调函数) 跟版本有关系
解绑事件的两种方式 off/unbind
事件的传播 从小到大传播 return false
事件的坐标:pageX pageY
合成事件:hover/toggle toggle跟版本相关1.7+版本动画效果
一次事件:one
2.动画效果
自带动画:
基本动画:show() hide() toggle()
滑动动画:slideDown() slideUp() slideToggle()
淡入淡出动画:fadeIn() fadeOut() fadeToggle()
自定义动画:
元素.animate({
宽高top left "10xp" "+=5"
},time)
-->
<style type="text/css">
#myForm label.error{
color: red;
font-size: 14px;
}
</style>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script src="js/jquery.validate.js" type="text/javascript"></script>
<!-- 引入jQuery表单验证类库 -->
<script type="text/javascript">
/* jQuery第五次课☞插件 */
/*
* 区分java的类方法以及对象方法
* --类(静态)方法:例如DBHelper.getCon()
* --对象方法:StuDao sd = new StuDao(); sd.addStu();
*/
$(function () {
/* 一、自定义插件 */
//1.1 $.extend()实现对象继承
//案例1:两个对象的继承
// var s1={};
// var s2={"name":"史华志"};
// console.info("继承前: "+s1.name);
// console.info("继承前: "+s2.name);
// //开始继承
// $.extend(s1,s2);//s1继承s2
// console.info("继承后: "+s1.name);
// console.info("继承后: "+s2.name);
//1.2 $.extend()扩展jQuery类方法
//案例2:求最大值(最小值)
// $.extend({
// abcd:function(){
// alert(1234);
// },
// getMax:function(a,b){
// return a>b?a:b;
// },
// getMin:function(a,b){
// return a<b?a:b;
// }
// })
// // $.abcd();
// // var a=$.getMax(10,40);
// // console.info(a);
// console.info($.getMin(10,30));
//用全选框实现全选功能
//1.3 $.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;
// })
// }
// })
//案例3:实现全选效果
//用按钮实现
// $("#ok").click(function(){
// $(".aaa").xx();
// })
// $("#nook").click(function(){
// $(".aaa").yy();
// })
//用复选框实现
// $("#qx").click(function(){
// //判断全选框是否选中
// // console.info($(this).prop("checked"));
// // if($(this).prop("checked")){//选中了
// if($(this).is(":checked")){//is 也可以
// $(".aaa").xx();//让其他复选框也选中
// }else{
// $(".aaa").yy();
// }
// })
// //给其他复选框增加点击是事件
// $(".aaa").click(function(){
// var f=true;//假设全选是选中的
// $(".aaa").each(function(i,ck){
// if(ck.checked==false){//有任何一个复选框没有被选中
// f=false;
// }
// })
// $("#qx").prop("checked",f);//改变全选功能
// })
/* 二、第三方插件:表单验证插件 */
//案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
$("#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之间"
},
}
})
})
</script>
</head>
<body>
<h2>案例3:自定义插件实现全选功能</h2>
<input type="button" value="全选" id="ok">
<input type="button" value="取消全选" id="nook">
<input type="checkbox" id="qx">全选
<input type="checkbox" value="看美女" class="aaa">看美女
<input type="checkbox" value="上网课" class="aaa">上网课
<input type="checkbox" value="打王者" class="aaa">打王者
<h2>案例4:使用jQuery validation插件完成表单验证</h2>
<form id="myForm">
用户名:<input type="text" name="uname" /><br />
密码:<input type="text" name="upwd1" id="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>
</html>
区分java的类方法以及对象方法
类(静态)方法:列如DBHelper.getCon()
对象方法:StuDao sd = new StuDao(); sd.addStu();
一、自定义插件
1.1 $.extend()实现对象继承
// var s1={};
// var s2={"name":"张三"};
// //开始继承
// $.extend(s1,s2);//s1继承s2
// console.info("继承后: "+s1.name);
// console.info("继承后: "+s2.name);
1.2 $.extend()扩展JQuery类方法
案例2:求最大值(最小值)
// $.extend({
// getMax:function(a,b){//扩展一个求最大值的方法
// return a>b?a:b;
// },
// getMin:function(a,b){//扩展一个求最小值的方法
// return a<b?a:b;
// }
// })
// // var a=$.getMax(10,40);//接收值
// // console.info(a); //打印值
// console.info($.getMin(10,30));//直接打印
//用全选框实现全选功能
//1.3 $.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;
// })
// }
// })
//案例3:实现全选效果
//用按钮实现
// $("#ok").click(function(){
// $(".aaa").xx();
// })
// $("#nook").click(function(){
// $(".aaa").yy();
// })
//用复选框实现
// $("#qx").click(function(){
// //判断全选框是否选中
// // console.info($(this).prop("checked"));
// // if($(this).prop("checked")){//选中了
// if($(this).is(":checked")){//is 也可以
// $(".aaa").xx();//让其他复选框也选中
// }else{
// $(".aaa").yy();
// }
// })
// //给其他复选框增加点击是事件
// $(".aaa").click(function(){
// var f=true;//假设全选是选中的
// $(".aaa").each(function(i,ck){
// if(ck.checked==false){//有任何一个复选框没有被选中
// f=false;
// }
// })
// $("#qx").prop("checked",f);//改变全选功能
// })
/* 二、第三方插件:表单验证插件 */
//案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
$("#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之间"
},
}
})
效果