首页 前端知识 jQuery插件

jQuery插件

2024-01-31 12:01:14 前端知识 前端哥 718 112 我要收藏

今天给大家分享一下插件,我分为了两个,一个是自定义插件,另一一个是第三方插件;

先看看思维导图:

 

自定义插件我分为了三个案例

先看案例一的代码

案例一:两个对象的继承 $.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,这就是今天的分享,谢谢观看

转载请注明出处或者链接地址:https://www.qianduange.cn//article/958.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

02_jQuery与Ajax

2024-02-12 14:02:05

jQuery

2024-01-31 12:01:10

echarts实现正负轴柱状图

2024-02-12 14:02:21

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!