====jQuery插件編寫原則=====
1.命名 jQuery.<插件名>.js
2.插件內部,this指向的是當前選擇器取得的JQuery對象,不是內部對象, 例如click(), 內部的this指向的是DOM元素
3.this.each可以遍歷所有元素
4.插件頭部加分號,防止壓縮的時候出問題
5.採用閉包寫法
;(function($){ //$是jQuery對象
/代碼塊/
})(jQuery);
=====jQuery.fn.extend()和jQuery.extend()區別=======
jQuery.fn.extend() 封裝對象方法,例子如下
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>extend : color</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
.a{
color : red;
}
</style>
<script type="text/javascript" src="../../scripts/jquery.js"></script>
<script type="text/javascript">
//插件編寫
;(function($) {
jQuery.fn.extend({
"color":function(value){
return this.css("color",value);
}
});
})(jQuery);
//插件應用
$(function(){
//查看第一個div的color樣式值
alert($("div").color()+"\n返回字符串,證明此插件可用。");
//把所有的div的字體顏色都設爲紅色
alert( $("div").color("red")+"\n返回object證明得到的是jQuery對象。");
})
</script>
</head>
<body>
<div class="a">red</div>
<div style="color:blue">blue</div>
<div style="color:green">green</div>
<div style="color:yellow">yellow</div>
</body>
</html>
jQuery.extend()
擴展JQuery對象,封裝全局函數,或者選擇器插件,常用於設計插件的一系列默認參數,例子如下
var setting = {a:1,b:2,c:3}
var option = {a:9,b:8}
var newJSON = jQuery.extend(setting,option);
結果是newJSON = {a:9,b:8,c:3}