jQuery插件扩展

  1. JQuery实际上就是一个封装操作DOM的对象。
  2. JQuery插件实际上就是扩展JQuery这个对象(实例或者本身),增加用户自己的方法。

1. 扩展JQuery本身

JQuery提供.extend()方法来对自身进行扩展。

$.extend( { say : function() {
    return "roddy";
} } );

// 使用
console.log( $.say() );

// 输出:
// "roddy"

对JQuery自身扩展一个.say()方法。

2. 扩展JQuery实例

JQuery提供.fn.extend()方法来扩展JQuery实例对象

$.fn.extend( { changeColor : function() {
    $( this ).style.color = "red";
} } );

// 使用
$( "span" ).changeColor();

3. 扩展写法

( function( $ ) {

    // 插件默认配置
    var defaultOptions = {
        property1 : "value1",
        property2 : "value2",
        ...
    };

    // 插件构造函数
    function userPlug( element, options ) {
        // jQuery实例对象
        this.$ele = $( element );
        // 合并用户配置和默认配置
        this.options = $.extend( defatuleOptions, options, true );
        // 插件初始化
        this.init( this );
    }

    // 插件原型
    userPlug.prototype = {
        // 插件初始化函数
        init : function( self ) {
            // 插件的主要实现代码
            // 可以通过self.options进行配置或者修改
            // 然后给self.$ele绑定事件处理函数等
        }
    }

    // 绑定插件
    $.fn.userplug = function( options ) {
        return this.each( function() {
            if( !$.data( this, 'userplug' ) ) {
                $.data( this, 'userplug', new userPlug( this, options ) );
            }
        } );
    }
} )( window.jQuery );

4. 使用插件

<script src="//cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script>
<script src="userPlug.js"></script>
<script> $( "div" ).userplug( [options] ); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值