jquery自定义插件

实现方法
jQuery为开发插件提拱了两个方法,分别是:

  1. jquery.fn.extend(object); 给jquery对象添加方法。
  2. jquery.extend(object); 为扩展jquery类本身.为类添加新的方法,可以理解为添加静态方法。

这两个方法都接受一个参数,类型为Object,Object对应的"名/值对"分别代表"函数或方法体/函数主体"。

html 文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery/jquery-1.11.3.min.js"></script>
    <script src="myJs.js"></script>
    <style>
        .active{
            color: red;
        }
    </style>
</head>
<body>
    <div id="myDiv"></div>
</body>

<script>

     $("#myDiv").myJs({
        list: ["000","111","222","333"],
        clickIndex: function (element,index) {
            console.log(element);
            console.log(index);
        }
    });


</script>
</html>

扩展插件文件

(function($){
    var defaults={
        list: ["1","2","3","4"],
        active:"green",
        show: '0',
        clickIndex:function(element,index){},
    };
    var opts = {}

    $.fn.myJs = function(options){
        // 获取设置参数
        opts= $.extend({},defaults,options);
        // 设置参数
        var list = opts.list;
        var _this = this
        var html = '';
        var len =list.length;
        for (var i = 0; i < len ; i ++) {
            html += "<span class='my-style' style='padding: 6px 20px;cursor: pointer;background: #eee;margin-right: 10px;'> "+list[i]+" </span>"
        }
        _this.append(html);
        // 默认执行为第一个添加active
        activeClick(0)
        //active 切换事件
        function activeClick( index) {
            _this.find('.my-style').eq(index).addClass('active').siblings().removeClass('active')
        }

        // 返回带参数的方法
        return _this.each(function(){
            _this.find("span.my-style").bind("click",function(){
                var index = $(this).index();
                activeClick(index)
                opts.clickIndex($(this).html(),index);
            })
        })

    };

    $.fn.myJs.reSetOpts = function(){
        return opts;
    }
})(jQuery);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值