jquery插件定义

1、定义全局插件

<script type="text/javascript">

/**
* 直接通过$.方法名称就可以定义一个全局的插件,这种定义带来的问题
* 1、一般插件都需要通过一个独立的js文件来存储,命名的规则的确定
* 2、如果将来$这个符号被jQuery.noConfilct之后,如何保证还能继续使用
*/
$.say = function(hello) {
alert("hello "+hello);
}


$(function() {
$.say("ok");
})

</script>

2、通过闭包方式定义插件

<script type="text/javascript">
/**
* 直接通过$.方法名称就可以定义一个全局的插件,这种定义带来的问题
* 1、一般插件都需要通过一个独立的js文件来存储,命名的规则的确定
* 2、如果将来$这个符号被jQuery.noConfilct之后,如何保证还能继续使用
*  解决方式:1、不再通过$,而是直接通过jQuery来调用,但是会增加工作量
*                         2、通过闭包来解决,将插件的定义全部放到一个闭包中
*                         3、如何为插件确定参数,如果一个方法存在7个参数
*/
jQuery(function() {
jQuery.say("ok");
$.complex(45,{
a2:"98"
},22);
})
</script>


// jQuery.noConflict();
//此时的$就不再是jquery中的$,而是闭包中的$,而闭包中的$又是jQuery对象
(function($){
$.say = function(hello) {
alert("hello "+hello);
}

/**
* 如果有一个插件,参数很多,而且很多参数并不是必须的
* 如此在调用的时候就会非常麻烦
* $.complex("aa");
* $.complex("aa",null,null,null,null,null,null,"abc");
* $.complex("aa","abc")
*/
// $.complex = function(p1,a2,a3,a4,a5,a6,a7,a8) {
//
// }
/**
 * 插件的参数的解决方法一般是通过options来定义
 * options中一般使用json来定义,这个时候就可以灵活来确定参数个数
 */
  $.complex = function(p1,options,p2) {
  /**
  * 在代码中,通过extend方法来完成覆盖
  */
  var settings = $.extend({
  a2:"ok",
  a3:"hello",
  a4:"你好"
  },options||{});
  alert(p1+p2);
  alert(settings.a2+","+settings.a3+","+settings.a4);
  }
})(jQuery)//传入jQuery作为参数



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值