class 类封装jq的标准写法

4 篇文章 0 订阅

jQuery插件开发模式

说到jQuery插件的编写,起初我把它当做封装一个方法那样简单,这显然是错的,因为这让我一开始完全不知道如何下手去编写一个插件。所以要先了解一下jQuery插件的三种开发方式:

  1. 通过$.extend()来扩展jQuery

  2. 通过$.fn 向jQuery添加新的方法

  3. 通过$.widget()应用jQuery UI的部件工厂方式创建

第三种方法是用来开发更高级的jQuery部件的。

第一种方法过于简单,仅仅是在jQuery命名空间或者可以理解为在jQuery身上添加了一个静态方法而已,调用时直接通过$.myfunction()调用,而不需要选中DOM元素,这种方法比较适用于定义一些辅助方法,比如定义一个console来输出特定格式的信息,然后再任何需要的地方调用这个方法。比如下面的例子:

$.extend({
    logTime: function(){
        var now = new Date(),
            y = now.getFullYear(),
            m = now.getMonth()+1,
            d = now.getDate();
        console.log(y +'-'+ m +'-'+ d);
    }
});
/*调用*/
$.logTime();

通过$.fn 向jQuery添加新的方法(插件开发)

基本方法$.fn.extend(obj) (为什么这里是$.fn.extend()而不是$.fn呢) 首先先来看看$.fn是什么意思

jQuery.fn = jQuery.prototype = {
    init:function(selector,context){...};
};

完整写法:

// jquery插件 class类写法
;(function($){
    class Banner{
        constructor(ele, opts){
            this.$element = ele;
            this.defaults = {}
            this.options = $.extend(this.defaults,opts)
        }
        init(){
            console.log($(this.$element))
        }
    }
    $.fn.mybanner = function(opts) {
       let ban = new Banner(this,opts);
       return ban.init();
    }
})(window.jQuery)
$("div").mybanner();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值