编写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>