顯示具有 jQuery 標籤的文章。 顯示所有文章
顯示具有 jQuery 標籤的文章。 顯示所有文章

2012年5月7日

[JQuery] 選擇器 Selectors



jQuery 的 selector 主要有三種, 其目的在於選擇 HTML 中的元素:

1. HTML Tag - 例如 $('p')

    可以選取所有
元素

2. 元素 ID - 例如 $('#myId')

    選取 ID 為 myId 的特定元素

3. CSS 類別 - 例如 $('.myClass')

    選取所有套用 myClass 類別的元素

在 jQuery 中就只有這三種標示法。不過如果事情那麼簡單的話, 我也不用花工夫來寫這篇文章了。事實上 jQuery 在以上三種選擇器之外, 又另外提供複雜而又功能強大的組合標示語法, 配合它的隱含迴圈運算, 讓我們可以更精準的選擇到我們想要的各種 HTML 元素; 我把這些組合標示語法整理如下:

Basic Selector

語法 範例 說明
* $( ' * ' ) All Selector -

選取所有文件中的元素
.class $( ' .myClass ' ) Class Selector -

選取所有套用指定 CSS 類別的元素
tag $ ( ' div ' ) Element Selector -

選取類型為指定 tag 的元素
ID $ ( ' #myId ' ) ID Selector -

選取指定 ID 的元素
a, b, c, ... $ ( ' .myClass, div, #myId ' ) Multiple Selector -

以逗點區隔以選取各元素的聯集

Hierarchy

語法 範例 說明
a > b $( ' table > th ' ) Child Selector -

選取 a 的下一層的直屬子元素 b 的集合
a b $( ' table th ' ) Descendant Selector -

選取 a 的子代元素 b 的集合
a + b $( ' body + table ' ) Next Adjacent Selector -

選取緊跟著 a 元素的 b 元素; 如範例中是選取 body 之下的第一個 table
a ~ b $( ' p ~ span ') Next Siblings Selector -

選取 a 以下的所有 b 元素; 這個 b 元素必須符合 sibling 篩選條件

Basic Filter

:first $( ' ul li:first ' ) First Selector -

選取篩選的集合中的第一個元素
:last $( ' ul li:last ' ) Last Selector -

選取篩選的集合中的最後一個元素
:not(a) $( ' input:not(:checked) ' ) Not Selector -

選取篩選的集合中不符合條件的所有元素
:odd $( ' ul li:odd ' ) Odd Selector -

選取篩選的集合中所有排列順序為奇數的元素(注意: 由0起算)
:even $( ' ul li:even ' ) Even Selector -

選取篩選的集合中所有排列順序為偶數的元素(注意: 由0起算)
:eq(n) $( ' ul li:eq(n) ' ) eq Selector -

選取篩選的集合中從頭算起第幾個元素(注意: 由0起算)
:gt(n) $( ' ul li:gt(n) ' ) gt Selector -

選取篩選的集合中所有排列順序大於n的元素(注意: 由0起算)
:lt(n) $( ' ul li:lt(n) ' ) lt Selector -

選取篩選的集合中所有排列順序小於n的元素(注意: 由0起算)
:animated $( ' ul:animated ' ) Animated Selector -

選取篩選的集合中所有正在進行動畫處理過程中的元素
:header $( ' :header ' ) Header Selector -

選取篩選的集合中所有標示為標題(如 h1, h2 等)的元素

Content Filter

:has(a) $( ' div:has(p) ' ) Has Selector -

選取元素之子元素內包含至少一個符合篩選條件的元素; 在範例中, 找到所有內含 p 元素的 div 元素
:contains(text) $( ' :contains(hello) ' ) Contains Selector -

選取內容文字中包含指定字串的元素
:empty $( ' :empty ' ) Empty Selector -

選取無任何子元素(包括文字節點)的元素
:parent $( ' li:parent ' ) Parent Selector -

選取指定元素(包括文字節點)的所有父節點元素

Visibility Filter

:hidden $( ' div:hidden ' ) Hidden Selector

選取被隱藏而不可見 (設定 "visibility:hidden" 或 "display:none" 或 width/height 被設定為 0, 或者因父代元素被設定為隱藏而不可見等等) 的元素
:visible $( ' div:visible ' ) Visible Selector

選取非隱藏的元素 (實際上是根據瀏覽器傳回的 offsetWidth 及 offsetHeight 的值是否大於 0 而決定)

Form

:input $( ' :input ' ) Input Selector -

選選取所有名為 input 的 tag, 包括 select, textarea 與 button 等
:text $( ' :text ' ) Text Selector -

選取所有類型為 “text” 的元素
:password $( ' :password ' ) Password Selector -

選取所有類型為“password”的元素
:radio $( ' :radio ' ) Radio Selector -

選取所有類型為“radio”的元素
:checkbox $( ' :checkbox ' ) Checkbox Selector -

選取所有類型為“checkbox”的元素
:submit $( ' :submit ' ) Submit Selector -

選取所有類型為“submit”的元素
:image $( ' :image ' ) Image Selector -

選取所有類型為“image”的元素
:reset $( ' :reset ' ) Reset Selector -

選取所有類型為“reset”的元素
:file $( ' :file ' ) File Selector -

選取所有類型為“file”的元素
:button $( ' :button ' ) Button Selector -

選取所有類型為“button”的元素
:enabled $( ' :enabled ' ) Enabled Selector -

選取所有被 enabled 的元素
:disabled $( ' :disabled ' ) Disabled Selector -

選取所有被 disabled 的元素
:selected $( ' :selected ' ) Selected Selector -

選取所有被  selected 的元素
:checked $( ' :checked ' ) Checked Selector -

選取所有類型為 "radio" 或 "checkbox" 的元素

Child Filter

:first-child $( ' ul li:first-child ' ) First-child Selector -

選取集合中的第一個子元素
:last-child $( ' ul li:last-child ' ) Last-child Selector -

選取集合中的最後一個子元素
:only-child $( ' div p:only-child ' ) Only-child Selector -

選取一個本身為其父元素之唯一子元素的元素
:nth-child(n) $( ' ul li:nth-child(n) ' ) nth-child Selector -

選取指定元素的第 n 個子元素 (從1起算)
:nth-child(odd) $( ' ul li:nth-child(odd) ' ) 選取指定元素的所有奇數個子元素 (從1起算)
:nth-child(even) $( ' ul li:nth-child(even) ' ) 選取指定元素的所有偶數個子元素 (從1起算)
:nth-child(formula) $( ' ul li:nth-child(3n) ' ) 選取指定元素的每 n 個子元素 (從1起算); 在範例中是指定每三個子元素

Attribute

[attribute] $( ' [href] ' ) Has Attribute Selector -

選取包含指定 attribute 的所有元素;  範例中會選取所有內含 href 這個 attribute 的元素
[attribute=value] $( ' [rel=external] ' ) Attribute Equals Selector -

選取所有包含指定的 attribute 文字的元素; 範例中會選取所有 ref 這個 attribute 之文字為 "external" 的元素
['attribute!=value'] $( ' [rel!=external] ' ) Attribute Not Equal Selector -

與上一項目相反; 選取所有不包含指定的 attribute 文字的元素; 範例中會選取所有 ref 這個 attribute 之文字不是 "external" 的元素”
[attribute^=value] $( ' [class^=open] ' ) Attribute Starts With Selector -

選選取所有內含指定 attribute, 且其內容以指定文字起頭的元素; 範例中會選取所有 class 這個 attribute 是以 "open" 字樣起頭者
[attribute$=value] $( ' [id$=-wrapper] ' ) Attribute Ends With Selector -

與上一項目相反; 選選取所有內含指定 attribute, 且其內容以指定文字結尾的元素; 範例中會選取所有 id 這個 attribute 是以 "-wrapper" 字樣結尾者
[attribute*=value] $( ' [class*=offer] ' ) Attribute Contains With Selector -

選取所有內含指定 attribute, 且其內容包含有指定文字的元素; 範例中會選取所有 class 這個 attribute 內含 "offer" 字樣者
[attribute~=value] $( ' [class~=offer] ' ) Attribute Contains Word Selector -

選取所有內含指定 attribute, 且其內容包含有指定英文字的元素(以空白或行首/末區隔); 範例中會選取所有 class 這個 attribute 內含 "offer" 字樣者; 可以取到 class="my offer", 但取不到 class="myoffer"
[a1=b1][a2=b2] $( ' [class=noshow] [id=myId] ' ) Multiple Attribute Selector -

選取符合多個篩選條件的交集的元素


* 註: 為了提高辨識度, 我在以上範例中都為引號前後加上了不必要的空白; 這不表示我們需要在程式中也這麼做

以上是我所做的總整理; 如果你有興趣, 也可以參考官網上的說明。

2010年11月25日

免費下載將近 80 種 jQuery Menu 範例,Apycom

Apycom 的 jQuery Drop Down Menu,可以免費下載,條件是不得用於商業網站以及要加上 http://apycom.com 的連結。

大致上用到的效果是兩個 jQuery 的 plugins:lavalamp 和 easing,都已經包在下載下來的 menu.js 裡,也有範例的檔案,應該是很容易學習的,你也可以修改 css 成你要的樣式。

不過 lavalamp 跟 fancybox 會沖,所以我在 ZOG 是選擇沒用到 lavalamp 的 menu。

至於 back link,你可以加在任何一個地方,然後用 CSS 藏起來。
Apycom jQuery Menus

2010年10月22日

jQuery UI-Datepicker

jQuery UI很強大,其中的日期選擇插件Datepicker是一個配置靈活的插件,我們可以自定義其展示方式,包括日期格式、語言、限制選擇日期範圍、添加相關按鈕以及其它導航等。

官方地址:http://docs.jquery.com/UI/Datepicker,官方示例: http://jqueryui.com/demos/datepicker/。


一個不錯的地址,用來DIY jQuery UI界面效果的站點http://jqueryui.com/themeroller/

DatePicker基本使用方法:

<!DOCTYPE html>
<html>
<head>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

  <script>
  $(document).ready(function() {
    $("#datepicker").datepicker();
  });
  </script>

</head>
<body style="font-size:62.5%;">

<div type="text" id="datepicker"></div>

</body>
</html>

DatePicker支持鼠標點選日期,同時還可以通過鍵盤控制選擇:

page up/down - 上一月、下一月
ctrl+page up/down - 上一年、下一年
ctrl+home - 當前月或最後一次打開的日期
ctrl+left/right - 上一天、下一天
ctrl+up/down - 上一週、下一週
enter - 確定選擇日期
ctrl+end - 關閉並清除已選擇的日期
escape - 關閉並取消選擇

實用功能:

$.datepicker.setDefaults( settings ) - 全局設置日期選擇插件的參數.
$.datepicker.formatDate( format, date, settings ) - 格式化顯示的日期字符串
$.datepicker.iso8601Week( date ) - 給出一個日期,確實他是一年中的第幾週
$.datepicker.parseDate( format, value, settings ) - 按照指定格式獲取日期字符串

日期格式:

d - 每月的第幾天 (沒有前導零)
dd - 每月的第幾天 (兩位數字)
o - 一年中的第幾天 (沒有前導零)
oo - 一年中的第幾天 (三位數字)
D - day name short
DD - day name long
m - 月份 (沒有前導零)
mm - 月份 (兩位數字)
M - month name short
MM - month name long
y - 年份 (兩位數字)
yy - 年份 (四位數字)
@ - Unix 時間戳 (從 01/01/1970 開始)
'...' - 文本
'' - 單引號
(其它) - 文本

其它標準日期格式:

ATOM - 'yy-mm-dd' (Same as RFC 3339/ISO 8601)
COOKIE - 'D, dd M yy'
ISO_8601 - 'yy-mm-dd'
RFC_822 - 'D, d M y'
RFC_850 - 'DD, dd-M-y'
RFC_1036 - 'D, d M y
RFC_1123 - 'D, d M yy'
RFC_2822 - 'D, d M yy'
RSS - 'D, d M y'
TIMESTAMP - '@'
W3C - 'yy-mm-dd'

參數(參數名 : 參數類型 : 默認值)


altField : String : ''
  將選擇的日期同步到另一個域中,配合altFormat可以顯示不同格式的日期字符串。
  初始:$('.selector').datepicker({ altField: '#actualDate' });
  獲取:var altField = $('.selector').datepicker('option', 'altField');
  設置:$('.selector').datepicker('option', 'altField', '#actualDate');  

altFormat : String : ''
  當設置了altField的情況下,顯示在另一個域中的日期格式。
  初始:$('.selector').datepicker({ altFormat: 'yy-mm-dd' });
  獲取:var altFormat = $('.selector').datepicker('option', 'altFormat');
  設置:$('.selector').datepicker('option', 'altFormat', 'yy-mm-dd');  

appendText : String : ''
  在日期插件的所屬域後面添加指定的字符串。
  初始:$('.selector').datepicker({ appendText: '(yyyy-mm-dd)' });
  獲取:var appendText = $('.selector').datepicker('option', 'appendText');
  設置:$('.selector').datepicker('option', 'appendText', '(yyyy-mm-dd)');  

buttonImage : String : ''
  設置彈出按鈕的圖片,如果非空,則按鈕的文本將成為alt屬性,不直接顯示。
  初始:$('.selector').datepicker({ buttonImage: '/images/datepicker.gif' });
  獲取:var buttonImage = $('.selector').datepicker('option', 'buttonImage');
  設置:$('.selector').datepicker('option', 'buttonImage', '/images/datepicker.gif');  

buttonImageOnly : Boolean : false
  Set to true to place an image after the field to use as the trigger without it appearing on a button.
  初始:$('.selector').datepicker({ buttonImageOnly: true });
  獲取:var buttonImageOnly = $('.selector').datepicker('option', 'buttonImageOnly');
  設置:$('.selector').datepicker('option', 'buttonImageOnly', true);  

buttonText : String : '...'
  設置觸發按鈕的文本內容。
  初始:$('.selector').datepicker({ buttonText: 'Choose' });
  獲取:var buttonText = $('.selector').datepicker('option', 'buttonText');
  設置:$('.selector').datepicker('option', 'buttonText', 'Choose');  

changeMonth : Boolean : false
  設置允許通過下拉框列表選取月份。
  初始:$('.selector').datepicker({ changeMonth: true });
  獲取:var changeMonth = $('.selector').datepicker('option', 'changeMonth');
  設置:$('.selector').datepicker('option', 'changeMonth', true);  

changeYear : Boolean : false
  設置允許通過下拉框列表選取年份。
  初始:$('.selector').datepicker({ changeYear: true });
  獲取:var changeYear = $('.selector').datepicker('option', 'changeYear');
  設置:$('.selector').datepicker('option', 'changeYear', true);  

closeTextType: StringDefault: 'Done'
  設置關閉按鈕的文本內容,此按鈕需要通過showButtonPanel參數的設置才顯示。
  初始:$('.selector').datepicker({ closeText: 'X' });
  獲取:var closeText = $('.selector').datepicker('option', 'closeText');
  設置:$('.selector').datepicker('option', 'closeText', 'X');  

constrainInput : Boolean : true
  如果設置為true,則約束當前輸入的日期格式。
  初始:$('.selector').datepicker({ constrainInput: false });
  獲取:var constrainInput = $('.selector').datepicker('option', 'constrainInput');
  設置:$('.selector').datepicker('option', 'constrainInput', false);  

currentText : String : 'Today'
  設置當天按鈕的文本內容,此按鈕需要通過showButtonPanel參數的設置才顯示。
  初始:$('.selector').datepicker({ currentText: 'Now' });
  獲取:var currentText = $('.selector').datepicker('option', 'currentText');
  設置:$('.selector').datepicker('option', 'currentText', 'Now');  

dateFormat : String : 'mm/dd/yy'
  設置日期字符串的顯示格式。
  初始:$('.selector').datepicker({ dateFormat: 'yy-mm-dd' });
  獲取:var dateFormat = $('.selector').datepicker('option', 'dateFormat');
  設置:$('.selector').datepicker('option', 'dateFormat', 'yy-mm-dd');  

dayNames : Array : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
  設置一星期中每天的名稱,從星期天開始。此內容用於dateFormat時顯示,以及日曆中當鼠標移至行頭時顯示。
  初始:$('.selector').datepicker({ dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'] });
  獲取:var dayNames = $('.selector').datepicker('option', 'dayNames');
  設置:$('.selector').datepicker('option', 'dayNames', ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']);  

dayNamesMin : Array : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
  設置一星期中每天的縮語,從星期天開始,此內容用於dateFormat時顯示,以前日曆中的行頭顯示。
  初始:$('.selector').datepicker({ dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] });
  獲取:var dayNamesMin = $('.selector').datepicker('option', 'dayNamesMin');
  設置:$('.selector').datepicker('option', 'dayNamesMin', ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa']);  

dayNamesShort : Array : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  設置一星期中每天的縮語,從星期天開始,此內容用於dateFormat時顯示,以前日曆中的行頭顯示。
  初始:$('.selector').datepicker({ dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'] });
  獲取:var dayNamesShort = $('.selector').datepicker('option', 'dayNamesShort');
  設置:$('.selector').datepicker('option', 'dayNamesShort', ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']);  

defaultDate : Date, Number, String : null
  設置默認加載完後第一次顯示時選中的日期。可以是Date對象,或者是數字(從今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ defaultDate: +7 });
  獲取:var defaultDate = $('.selector').datepicker('option', 'defaultDate');
  設置:$('.selector').datepicker('option', 'defaultDate', +7);  

duration : String, Number : 'normal'
  設置日期控件展開動畫的顯示時間,可選是"slow", "normal", "fast",''代表立刻,數字代表毫秒數。
  初始:$('.selector').datepicker({ duration: 'slow' });
  獲取:var duration = $('.selector').datepicker('option', 'duration');
  設置:$('.selector').datepicker('option', 'duration', 'slow');  

firstDay : Number : 0
  設置一週中的第一天。星期天為0,星期一為1,以此類推。
  初始:$('.selector').datepicker({ firstDay: 1 });
  獲取:var firstDay = $('.selector').datepicker('option', 'firstDay');
  設置:$('.selector').datepicker('option', 'firstDay', 1);  

gotoCurrent : Boolean : false
  如果設置為true,則點擊當天按鈕時,將移至當前已選中的日期,而不是今天。
  初始:$('.selector').datepicker({ gotoCurrent: true });
  獲取:var gotoCurrent = $('.selector').datepicker('option', 'gotoCurrent');
  設置:$('.selector').datepicker('option', 'gotoCurrent', true);  

hideIfNoPrevNext : Boolean : false
  設置當沒有上一個/下一個可選擇的情況下,隱藏掉相應的按鈕。(默認為不可用)
  初始:$('.selector').datepicker({ hideIfNoPrevNext: true });
  獲取:var hideIfNoPrevNext = $('.selector').datepicker('option', 'hideIfNoPrevNext');
  設置:$('.selector').datepicker('option', 'hideIfNoPrevNext', true);  

isRTL : Boolean : false
  如果設置為true,則所有文字是從右自左。
  初始:$('.selector').datepicker({ isRTL: true });
  獲取:var isRTL = $('.selector').datepicker('option', 'isRTL');
  設置:$('.selector').datepicker('option', 'isRTL', true);  

maxDate : Date, Number, String : null
  設置一個最大的可選日期。可以是Date對象,或者是數字(從今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ maxDate: '+1m +1w' });
  獲取:var maxDate = $('.selector').datepicker('option', 'maxDate');
  設置:$('.selector').datepicker('option', 'maxDate', '+1m +1w');
       $('.selector').datepicker('option', 'maxDate', '12/25/2012');  

minDate : Date, Number, String : null
  設置一個最小的可選日期。可以是Date對象,或者是數字(從今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ minDate: new Date(2007, 1 - 1, 1) });
  獲取:var minDate = $('.selector').datepicker('option', 'minDate');
  設置:$('.selector').datepicker('option', 'minDate', new Date(2007, 1 - 1, 1));
       $('.selector').datepicker('option', 'minDate', '12/25/2012');  

monthNames : Array : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
  設置所有月份的名稱。
  初始:$('.selector').datepicker({monthNames:['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December']});
  獲取:var monthNames = $('.selector').datepicker('option', 'monthNames');
  設置:$('.selector').datepicker('option', 'monthNames', ['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December']);  

monthNamesShort : Array : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  設置所有月份的縮寫。
  初始:$('.selector').datepicker({monthNamesShort:['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec']});
  獲取:var monthNamesShort = $('.selector').datepicker('option', 'monthNamesShort');
  設置:$('.selector').datepicker('option', 'monthNamesShort', ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec']);  

navigationAsDateFormat : Boolean : false
  如果設置為true,則formatDate函數將應用到 prevText,nextText和currentText的值中顯示,例如顯示為月份名稱。
  初始:$('.selector').datepicker({ navigationAsDateFormat: true });
  獲取:var navigationAsDateFormat = $('.selector').datepicker('option', 'navigationAsDateFormat');
  設置:$('.selector').datepicker('option', 'navigationAsDateFormat', true);  

nextText : String : 'Next'
  設置「下個月」鏈接的顯示文字。
  初始:$('.selector').datepicker({ nextText: 'Later' });
  獲取:var nextText = $('.selector').datepicker('option', 'nextText');
  設置:$('.selector').datepicker('option', 'nextText', 'Later');  

numberOfMonths : Number, Array : 1
  設置一次要顯示多少個月份。如果為整數則是顯示月份的數量,如果是數組,則是顯示的行與列的數量。
  初始:$('.selector').datepicker({ numberOfMonths: [2, 3] });
  獲取:var numberOfMonths = $('.selector').datepicker('option', 'numberOfMonths');
  設置:$('.selector').datepicker('option', 'numberOfMonths', [2, 3]);  

prevText : String : 'Prev'
  設置「上個月」鏈接的顯示文字。
  初始:$('.selector').datepicker({ prevText: 'Earlier' });
  獲取:var prevText = $('.selector').datepicker('option', 'prevText');
  設置:$('.selector').datepicker('option', 'prevText', 'Earlier');  

shortYearCutoff : String, Number : '+10'
  設置截止年份的值。如果是(0-99)的數字則以當前年份開始算起,如果為字符串,則相應的轉為數字後再與當前年份相加。當超過截止年份時,則被認為是上個世紀。
  初始:$('.selector').datepicker({ shortYearCutoff: 50 });
  獲取:var shortYearCutoff = $('.selector').datepicker('option', 'shortYearCutoff');
  設置:$('.selector').datepicker('option', 'shortYearCutoff', 50);  

showAnim : String : 'show'
  設置顯示、隱藏日期插件的動畫的名稱。
  初始:$('.selector').datepicker({ showAnim: 'fold' });
  獲取:var showAnim = $('.selector').datepicker('option', 'showAnim');
  設置:$('.selector').datepicker('option', 'showAnim', 'fold');  

showButtonPanel : Boolean : false
  設置是否在面板上顯示相關的按鈕。
  初始:$('.selector').datepicker({ showButtonPanel: true });
  獲取:var showButtonPanel = $('.selector').datepicker('option', 'showButtonPanel');
  設置:$('.selector').datepicker('option', 'showButtonPanel', true);  

showCurrentAtPos : Number : 0
  設置當多月份顯示的情況下,當前月份顯示的位置。自頂部/左邊開始第x位。
  初始:$('.selector').datepicker({ showCurrentAtPos: 3 });
  獲取:var showCurrentAtPos = $('.selector').datepicker('option', 'showCurrentAtPos');
  設置:$('.selector').datepicker('option', 'showCurrentAtPos', 3);  

showMonthAfterYear : Boolean : false
  是否在面板的頭部年份後面顯示月份。
  初始:$('.selector').datepicker({ showMonthAfterYear: true });
  獲取:var showMonthAfterYear = $('.selector').datepicker('option', 'showMonthAfterYear');
  設置:$('.selector').datepicker('option', 'showMonthAfterYear', true);  

showOn : String : 'focus'
  設置什麼事件觸發顯示日期插件的面板,可選值:focus, button, both
  初始:$('.selector').datepicker({ showOn: 'both' });
  獲取:var showOn = $('.selector').datepicker('option', 'showOn');
  設置:$('.selector').datepicker('option', 'showOn', 'both');  

showOptions : Options : {}
  如果使用showAnim來顯示動畫效果的話,可以通過此參數來增加一些附加的參數設置。
  初始:$('.selector').datepicker({ showOptions: {direction: 'up' });
  獲取:var showOptions = $('.selector').datepicker('option', 'showOptions');
  設置:$('.selector').datepicker('option', 'showOptions', {direction: 'up');  

showOtherMonths : Boolean : false
  是否在當前面板顯示上、下兩個月的一些日期數(不可選)。
  初始:$('.selector').datepicker({ showOtherMonths: true });
  獲取:var showOtherMonths = $('.selector').datepicker('option', 'showOtherMonths');
  設置:$('.selector').datepicker('option', 'showOtherMonths', true);  

stepMonths : Number : 1
  當點擊上/下一月時,一次翻幾個月。
  初始:$('.selector').datepicker({ stepMonths: 3 });
  獲取:var stepMonths = $('.selector').datepicker('option', 'stepMonths');
  設置:$('.selector').datepicker('option', 'stepMonths', 3);  

yearRange : String : '-10:+10'
  控制年份的下拉列表中顯示的年份數量,可以是相對當前年(-nn:+nn),也可以是絕對值 (-nnnn:+nnnn)
  初始:$('.selector').datepicker({ yearRange: '2000:2010' });
  獲取:var yearRange = $('.selector').datepicker('option', 'yearRange');
  設置:$('.selector').datepicker('option', 'yearRange', '2000:2010');

事件

beforeShow : function(input)
  在日期控件顯示面板之前,觸發此事件,並返回當前觸發事件的控件的實例對象。
  初始:$('.selector').datepicker({ beforeShow: function(input) { ... } });  

beforeShowDay : function(date)
  在日期控件顯示面板之前,每個面板上的日期綁定時都觸發此事件,參數為觸發事件的日期。調用函數後,必須返回一個數組:[0]此日期是否可選(true/false),[1]此日期的CSS樣式名稱(""表示默認),[2]當鼠標移至上面出現一段提示的內容。
  初始:$('.selector').datepicker({ beforeShowDay: function(date) { ... } });  

onChangeMonthYear : function(year, month, inst)
  當年份或月份改變時觸發此事件,參數為改變後的年份月份和當前日期插件的實例。
  初始:$('.selector').datepicker({ onChangeMonthYear: function(year, month, inst) { ... } });  

onClose : function(dateText, inst)
  當日期面板關閉後觸發此事件(無論是否有選擇日期),參數為選擇的日期和當前日期插件的實例。
  初始:$('.selector').datepicker({ onClose: function(dateText, inst) { ... } });  

onSelect : function(dateText, inst)
  當在日期面板選中一個日期後觸發此事件,參數為選擇的日期和當前日期插件的實例。
  $('.selector').datepicker({ onSelect: function(dateText, inst) { ... } });

方法:

destory
  從元素中移除拖拽功能。
  用法:.datepicker( 'destroy' )  

disable
  禁用元素的拖拽功能。
  用法:.datepicker( 'disable' )  

enable
  啟用元素的拖拽功能。
  用法:.datepicker( 'enable' )  

option
  獲取或設置元素的參數。
  用法:.datepicker( 'option' , optionName , [value] )  

dialog
  在dialog插件中打開一個日期插件。
  用法:.datepicker( 'dialog' , dateText , [onSelect] , [settings] , [pos] )  

isDisabled
  確實日期插件是否已被禁用。
  用法:.datepicker( 'isDisabled' )  

hide
  隱藏(關閉)之前已經打開的日期面板。
  用法:.datepicker( 'hide' , [speed] )   

show
.datepicker( 'show' )
  顯示日期插件。
  用法:.datepicker( 'show' )  

getDate
  返回當前日期插件選擇的日期。
  用法:.datepicker( 'getDate' )  

setDate
  設置日期插件當前的日期。date參數可以是數字(從今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d'),null表示當天。
  用法:.datepicker( 'setDate' , date )

2008年11月28日

jQuery 的17個PLUGIN

隨著 jQuery 的插件日多,要在官方的 wiki 上找到自己想要的插件已經變得十分困難。所以整理了一份常用的 jQuery plugin列表,方便自己找資料,也順便溫習一下 jQuery ,免得老是重造別人造過的輪子 (重造很易,Fix bug 才要命…)。

jQuery UI
jQuery UI

由 jQuery 官方所整理的 UI 插件包。包括拖放、排序、Resize、Dialog、Slider等常見UI控件。
Interface elements for jQuery
jquery interface

另一個比較老的 jQuery UI控件及特效庫。
jQuery Plugin and Demo
jQuery Plugin

幾個十分優秀的 UI Plugin。包括 Block UI、Cycle Plugin、Feed Plugin等。
SuckerFish Style
jQuery Plugin-Sucker Fish Style

下拉目錄。雖然不是很難做的技術,但能省下很可觀的 Fix bug 的時間。
jQuery UI Tabs
jQuery UI Tabs

已經收錄在官方 UI 插件包。
jQuery Cycle Plugin
jQuery Cycle

可以用在 photo gallery 中,極度強大。
jCarousel
jQuery Carousel

剛剛要用到這個插件。
Inner Fade
jQuery InnerFade

無需再用 Flash 來做漸隱漸現的效果囉。
ThinkBox 3.1
jQuery ThickBox

常用到爆的ThickBox,已經是很完美的版本。
Validation
Validation

表單驗證
tablesorter
jQuery table sorter

表格排序
Zebra Table
jQuery Zebra Table

間條的表格,不錯的效果。
jQuery Tooltips
jQuery Tooltip

Tooltips
JQuery Curvy Corners
JQuery-Curvy-Corners

圖角效果。雖然不喜歡,但收下來以防萬一有客方要求「Web2.0 Style」….XD

jQuery Scroll To

平滑地 scroll to somewhere
Block UI
Block UI

把某個部份 Block 掉的插件,可能有用。
hoverIntent
為hover加上delay的功能。