jQuery 插件-(初体验一)

1.jquery有2个扩展方法:

  • jquery.fn.extend=jquery.prototype.extend
  • jquery.extend

(两者的区别放在后面文章说)

2.具体实例结构:

//创建及时作用域
(function ($) {

    // 通过字面量创造一个对象,存储我们需要的共有方法
    var methods = {
        inint: function (options) {

            //返回“this”(函数each()的返回值也是this),以便进行链式调用。
            return this.each(function () {

                // 为每个独立的元素创建一个jQuery对象
                var $this = $(this);

                //设置默认值
                var defaults = {
                    proName: 'zqz'

                };

                if (typeof (options) == 'undefined') {
                    settings = $.extend({}, defaults);
                } else {
                    var settings = {
                        proName: options.proName,
                        Events: handlers.zqzClick($this, options)
                    };
                    settings = $.extend({}, defaults, settings);
                }

            })
        }
    };

    //事件
        var handlers = {
            zqzClick: function ($this, options) {
                $this.bind('click', options.zqzClick);
            }
        };

   //向jQuery中被保护的“fn”命名空间中添加你的插件代码,用“zqz”作为插件的函数名称
        $.fn.zqz = function () {

            // 检验方法是否存在
            var method = arguments[0];

        if (methods[method]) {
            method = methods[method];

            arguments = Array.prototype.slice.call(arguments, 1);

            // 如果方法不存在,检验对象是否为一个对象(JSON对象)或者method方法没有被传入
        } else if (typeof (method) == 'object' || !method) {
            method = methods.inint;
        } else {
            $.error('asdasd');

            return this;
        }
        return method.apply(this, arguments);
    }

})(jQuery)

//调用
$(function () {
        //$('#blanckjh').zqz();
           $('#blanckjh').zqz({
            'proName': 'wdx',
             'zqzClick': function () {
                alert("zqz");
            }

        });
    })

3.插件中涉及到的一些概念与注意事项放在后面文章说

 

posted on 2015-07-11 12:10 qize 阅读(...) 评论(...) 编辑 收藏

导航

公告