编写JQuery插件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
    <script type="text/javascript">
        $(function () {
            (function ($) {


                var methods = {
                    show: function () { alert('this is show'); }
                }

                $.fn.test = function (opt) {

                    var settings = {
                        color: "red",
                        fontSize: '36px',
                        refresh: function () { alert('this is settings refresh'); }
                    };
                    if (typeof opt == "string") {
                        alert(Array.prototype.slice.call(arguments, 1));
                        return methods[opt].apply(this, Array.prototype.slice.call(arguments, 1)); // Array.prototype.slice.call(arguments, 1) 是获取参数 1代表第二个参数 
                    }
                    else {
                        var optnew = $.extend(settings, opt);
                        //此处没有必要将this包在$号中如$(this),因为this已经是一个jQuery对象。
                        //$(this)等同于 $($('#element'))
                        alert(optnew.fontSize);
                        $(this).css({ color: optnew.color, "font-size": optnew.fontSize });
                        //settings.refresh();

                        alert(optnew.refresh);
                    }
                };
            })(jQuery);

            // $('div').test({ color: 'blue', fontSize: "100px", refresh: function () { alert('this is opt refresh'); } });
            $('div').test("show","this is 2 canshu"); //调用插件的方法 第一个参数是方法名,第二个参数是附加的其他参数,可以传给show
        })
    </script>

</head>
<body>

<div>test</div>
</body>
</html>

 

posted @ 2016-09-01 11:10  甜菜波波  阅读(178)  评论(0编辑  收藏  举报