JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)

理解$.extend(),与$.fn.extend()方法区别

1.$.extend()方法

$.extend()方法在JQuery中有两个用法,第一次是扩展方法,

第二个方法是

jQuery.extend([deep], target, object1, [objectN])

返回值:Object

把2个对象合并得到新的target,deep是可选的(递归合并)

合并 settings 和 options,修改并返回 settings。

jQuery 代码:
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
结果:
settings == { validate: true, limit: 5, name: "bar" }
描述:

合并 defaults 和 options, 不修改 defaults。

jQuery 代码:
var empty = {};
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = jQuery.extend(empty, defaults, options);
结果:
settings == { validate: true, limit: 5, name: "bar" }
empty == { validate: true, limit: 5, name: "bar" }

2中扩展:

第一种,看代码

?
$( function (){
             jQuery.extend({
                 modalshow: function (options) {
                     var defaults = {
                         triggerID: 'LoginShow' ,
                         callback: function () { }
                     }<BR>        //这里是$.extend的第二种用法<BR>       var opts = $.extend({},defaults, options);
                     if ($( "#" + opts.triggerID)[0] == null ) {
                         var $triggerBTN = $( '<input type="button" value="LoginShow" id=' + opts.triggerID + '/>' );
                         $triggerBTN.bind( "click" , function () {
                             alert(opts.triggerID);
                         });
                         $( "body" ).append($triggerBTN);
                     } else {
                         $( "#" + opts.triggerID).bind( "click" , function () {
                             alert(opts.triggerID);
                         })
                     }
                 }
             });
             $.modalshow(); //这里是调用的地方,id为'loginshow'的button可以先不再HTML中添加可以自动生成
         })

第二种扩展

?
$( function (){
             jQuery.fn.extend({
                 modalshow: function (options) {
                     var defaults = {
                         //这里的this是JQuery对象
                         triggerID: this .attr( "id" ),
                         callback: function () { }
                     }<BR>         //这里是$.extend的第二种用法<BR>         var opts = $.extend(defaults, options);
                     $( "#" + opts.triggerID).bind( "click" , function () {
                           alert(opts.triggerID);
                     })
                 }
             });
             $( "#loginShow" ).modalshow(); //这里是调用的地方,这里需要先在HTML中加入元素
         })

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值