day16-jQuery扩展以及自执行函数的应用
一、前言
今天我们来学习一下jquery的扩展,比如说我们想自己封装一些jquery的类库,或者自定义一个juqery的方法。我定义一个函数:
|
1
|
$.shuaigaogao() |
当然这个在jquery里面是没有的,那我们如何自定义一个呐?
二、jquery扩展
2.1、extend扩展
|
1
2
3
4
5
6
7
8
9
10
|
//定义$.extend({ "函数名" : function(){ //js代码 }});//调用$.函数名(); |
Eg:
|
1
2
3
4
5
6
7
8
|
$.extend({ "sbh" : function(){ return "sb"; }});var v = $.sbh(); //sbh函数使我们自己定义的alert(v); |
2.2、fn.extend扩展
|
1
2
3
4
5
6
7
8
9
|
//定义$.fn.extend({ "函数名" : function(){ //js代码 }});//调用$("选择器").函数名(); |
Eg:
|
1
2
3
4
5
6
7
8
|
$.fn.extend({ "sbh" : function(){ return "sbh"; }});var v = $("#i1").sbh();//sbh函数是自己定义的alert(v); |
三、 自执行函数解决冲突
假如我们在工作中遇到这种情况:就是说如果你用jquery扩展,或者在百度上找到别人写的jquery扩展,如果遇到两个名字是一样的,和全局变量也是一样的,那咋办呐?如下图这种情况:

这种情况我们该咋办呐?如果引用的话,你必须还得导入该js。
|
1
|
<script src="plugin01.js"></script> |
这种情况,我们写一个自执行函数:
|
1
2
3
4
5
6
7
8
9
10
11
|
(function(args){ var status = 1; args.extend({ "sbh" : function(){ return "sbh"; } });})(jQuery); //这边也可以传入 $ |
这样的话就解决了,全局变量的问题。
|
1
2
3
4
5
6
7
|
(function(args){ var status = 1; //封装函数})(jQuery); |

浙公网安备 33010602011771号