<!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>