mdui 內建了一個輕量的 JavaScript 工具函式庫,它擁有與 jQuery 類似的 API 和鏈式呼叫風格,但體積僅為 jQuery 的六分之一。
你可以透過 mdui.$ 來呼叫該函式庫,但最好把 mdui.$ 儲存到一個簡短的變數中以方便呼叫,例如:
var $ = mdui.$;在後面的文件中,都使用 $ 來表示 mdui.$。
$() | 該方法有多種用法: 可以傳入一個 CSS 選取器作為參數,回傳包含符合元素的 JQ 物件。該方法是透過 可以傳入 DOM 元素、任意陣列、NodeList、JQ 物件,回傳包含指定元素的 JQ 物件。 可以傳入 HTML 字串,回傳包含根據 HTML 建立的 DOM 的 JQ 物件。 可以傳入一個函式,在 DOM 載入完畢後會呼叫該函式。 |
$.extend() | 如果只傳入一個物件,該物件中的屬性將合併到 JQ 物件中,相當於在 JQ 的命名空間下新增新的功能。 如果傳入了兩個或更多個物件,所有物件的屬性都新增到第一個物件,並回傳合併後的物件。 |
$.fn.extend() | 在 JQ 的原型鏈上擴充方法。 |
$.param() | 將物件或陣列序列化,回傳一個可用於 URL 參數的字串。 若傳入參數是一個陣列,則該陣列格式必須與 |
$.each() | 遍歷陣列或物件。回傳值為第一個參數,即被遍歷的陣列或物件。 函式的第一個參數為陣列的索引位置、或物件的鍵;第二個參數為陣列或物件對應位置的值。 回呼函式中的 |
$.merge() | 把第二個陣列的元素追加到第一個陣列中,並回傳合併後的陣列。 |
$.unique() | 過濾掉陣列中的重複元素。 |
$.map() | 遍歷陣列或物件,回傳由函式的回傳值組成的新陣列。 函式的第一個參數為陣列或物件對應位置的值,第二個參數為陣列的索引位置、或物件的鍵。 函式可以回傳任何值,若函式回傳的是陣列,則會被展開;若回傳的是 |
$.contains() | 判斷父節點是否包含子節點,回傳布林值。 |
.is() | 如果集合中至少有一個元素和參數符合,則回傳 參數可以是 CSS 選取器、DOM 元素、DOM 元素陣列、JQ 物件、或回呼函式。 參數為回呼函式時,函式的第一個參數為索引位置,第二個參數為目前元素, |
.length | 回傳目前集合中元素的數量。 |
.each() | 遍歷目前集合,為集合中每一個元素執行一個函式。如果函式回傳 函式的第一個參數為元素的索引位置,第二個參數為目前元素。函式中的 |
.map() | 遍歷目前集合,為集合中的每個元素執行一個函式,回傳由函式回傳值組成的新集合。若函式回傳 函式的第一個參數為元素的索引位置,第二個參數為目前元素。函式的 |
.eq() | 回傳僅包含指定索引位置的元素的集合。 |
.first() | 回傳僅包含第一個元素的集合。 |
.last() | 回傳僅包含最後一個元素的集合。 |
.get() | 回傳指定索引位置的元素。若未傳入參數,則回傳集合中所有元素組成的陣列。 |
.index() | 如果沒有傳入參數,則回傳集合中第一個元素相對於同輩元素的索引位置。 如果傳入了一個 CSS 選取器作為參數,則回傳集合中第一個元素相對於 CSS 選取器符合元素的索引位置。 如果傳入了一個 DOM 元素,則回傳該 DOM 元素在集合中的索引值。 如果傳入一個 JQ 物件,則回傳物件中第一個元素在當前集合中的索引位置。 |
.slice() | 回傳當前集合的子集。 第一個參數為子集的起始位置,第二個參數為子集的結束位置;若未傳入第二個參數,表示包含從起始位置到結尾的所有元素。 |
.filter() | 從當前集合中篩選出與指定運算式符合的元素。參數可以是 CSS 選取器、DOM 元素、DOM 元素陣列、回呼函式。 參數為函式時,函式的第一個參數為索引位置,第二個參數為當前元素,函式中的 |
.not() | 從當前集合中篩選出與指定運算式不符合的元素。參數可以是 CSS 選取器、DOM 元素、DOM 元素陣列、回呼函式。 參數為函式時,函式的第一個參數為索引位置,第二個參數為當前元素,函式中的 |
.hasClass() | 判斷集合中的第一個元素是否含有指定 CSS 類別。 |
.addClass() | 為集合中的每個元素新增 CSS 類別,多個類別名稱之間可以用空格分隔。 也可以傳入一個回傳 CSS 類別名稱的回呼函式。函式的第一個參數為索引位置,第二個參數為該元素上原有的 CSS 類別名稱,函式中的 |
.removeClass() | 移除集合中的元素上的 CSS 類別,多個類別名稱之間可以用空格分隔。 也可以傳入一個回傳 CSS 類別名稱的回呼函式。函式的第一個參數為索引位置,第二個參數為該元素上原有的 CSS 類別名稱,函式中的 若沒有傳入參數,則將直接移除元素上的 |
.toggleClass() | 元素上的 CSS 類別,有則刪除,無則添加。多個類別名稱之間可以用空格分隔。 也可以傳入一個傳回 CSS 類別名稱的回呼函式。函式的第一個參數為索引位置,第二個參數為該元素上原有的 CSS 類別名稱,函式中的 |
.prop() | 取得集合中第一個元素的屬性值。 也可以是設定集合中所有元素的屬性值。 設定的屬性值可以是回呼函式的傳回值。回呼函式的第一個參數為元素的索引位置,第二個參數為該元素上原有的屬性值,函式內的 若屬性值或回呼函式的傳回值為 也可以透過傳入物件來同時設定多個屬性。 |
.removeProp() | 刪除集合中所有元素上指定的屬性值。 |
.attr() | 取得集合中第一個元素的屬性值。 也可以是設定集合中所有元素的屬性值。 設定的屬性值可以是回呼函式的傳回值。回呼函式的第一個參數為元素的索引位置,第二個參數為該元素上原有的屬性值,函式內的 若屬性值或回呼函式的傳回值為 也可以透過傳入物件來同時設定多個屬性。 |
.removeAttr() | 刪除集合中所有元素上指定的屬性值,多個屬性名稱之間可以用空格分隔。 |
.val() | 取得集合中第一個元素的值。 若元素是 也可以是設定集合中所有元素的值。 設定的值可以是字串、數值、字串陣列、回呼函式。 若值為回呼函式,第一個參數為元素的索引位置,第二個參數為元素的原有的值,函式中的 若元素為 若值、或函式傳回值為 |
.text() | 取得集合中所有元素的文字內容(包含它們的後代元素) 也可以是設定集合中所有元素的文字。 設定的值可以是字串、數值、布林值、回呼函式。 若為回呼函式,第一個參數為元素的索引位置,第二個參數為元素原有的文字內容,函式內的 若設定的值、或回呼函式傳回值為 |
.html() | 取得集合中第一個元素的 HTML 內容。 也可以是設定集合中所有元素的 HTML 內容。 設定的值可以是 HTML 字串、DOM 元素、回呼函式。 若為回呼函式,第一個參數為元素的索引位置,第二個參數為元素原有的 HTML 內容,函式內的 若設定的值、或函式傳回值為 |
$.data() | 在指定元素上讀取或儲存資料。 儲存資料時,若值為 注意:該方法不會檢索元素上的 |
$.removeData() | 移除指定元素上儲存的資料。 多個鍵名可以用空格分隔,也可以用陣列表示多個鍵名。未指定鍵名時,將移除元素上的所有資料。 |
.data() | 在目前集合的元素上讀取或儲存資料。 儲存資料時,若值為 注意:該方法檢索的資料會包含元素上的 |
.removeData() | 移除目前集合的元素上儲存的資料。 多個鍵名可以用空格分隔,也可以用陣列表示多個鍵名。未指定鍵名時,將移除元素上的所有資料。 注意:該方法只會移除透過 |
.css() | 取得集合中第一個元素的 CSS 屬性值。 也可以設定集合中所有元素的 CSS 屬性值。 屬性值可以是字串、數值、或一個傳回字串或數值的回呼函式。 若屬性值是回呼函式,第一個參數為元素的索引位置,第二個參數為元素原有的 CSS 屬性值,函式中的 若屬性值或回呼函式傳回 若屬性值或回呼函式傳回數值,則會添加 也可以透過傳入一個鍵值對物件,來同時設定多個 CSS 屬性。 |
.width() | 取得集合中第一個元素的寬度(像素值),不包含 也可以設定集合中所有元素的寬度(不包含 值可以是帶單位的字串、數值、或傳回帶單位的字串或數值的回呼函式。 回呼函式的第一個參數為元素的索引位置,第二個參數為元素原有的寬度值,函式中的 若值、或回呼函式的傳回值為數值,則會自動添加 若值、或回呼函式的傳回值為 |
.height() | 取得集合中第一個元素的高度(像素值),不包含 也可以設定集合中所有元素的高度(不包含 值可以是帶單位的字串、數值、或傳回帶單位的字串或數值的回呼函式。 回呼函式的第一個參數為元素的索引位置,第二個參數為元素原有的高度值,函式中的 若值、或回呼函式的傳回值為數值,則會自動添加 若值、或回呼函式的傳回值為 |
.innerWidth() | 取得集合中第一個元素的寬度(像素值),包含 也可以設定集合中所有元素的寬度(包含 值可以是帶單位的字串、數值、或傳回帶單位的字串或數值的回呼函式。 回呼函式的第一個參數為元素的索引位置,第二個參數為元素原有的寬度值,函式中的 若值、或回呼函式的傳回值為數值,則會自動添加 若值、或回呼函式的傳回值為 |
.innerHeight() | 取得集合中第一個元素的高度(像素值),包含 也可以設定集合中所有元素的高度(包含 值可以是帶單位的字串、數值、或傳回帶單位的字串或數值的回呼函式。 回呼函式的第一個參數為元素的索引位置,第二個參數為元素原有的高度值,函式中的 若值、或回呼函式的傳回值為數值,則會自動添加 若值、或回呼函式的傳回值為 |
.outerWidth() | 取得集合中第一個元素的寬度(像素值),包含 也可以設定集合中所有元素的寬度(包含 第一個參數可以是帶單位的字串、數值、或傳回帶單位的字串或數值的回呼函式。 回呼函式的第一個參數為元素的索引位置,第二個參數為元素的原有寬度,函式中的 若值、或回呼函式的傳回值為數值,則會自動添加 若值、或回呼函式的傳回值為 |
.outerHeight() | 取得集合中第一個元素的高度(像素值),包含 也可以設定集合中所有元素的高度(包含 第一個參數可以是帶單位的字串、數值、或傳回帶單位的字串或數值的回呼函式。 回呼函式的第一個參數為元素的索引位置,第二個參數為元素的原有高度,函式中的 若值、或回呼函式的傳回值為數值,則會自動添加 若值、或回呼函式的傳回值為 |
.hide() | 隱藏集合中的所有元素。 |
.show() | 顯示集合中的所有元素。 |
.toggle() | 切換集合中所有元素的顯示狀態。 |
.offset() | 取得集合中第一個元素相對於 也可以設定集合中所有元素相對於 參數為一個包含 若參數是回呼函式,第一個參數為元素的索引位置,第二個參數為元素的原有座標,函式中的 若參數中 |
.offsetParent() | 傳回集合中第一個元素的用於定位的父元素。即父元素中第一個 |
.position() | 取得集合中第一個元素相對於父元素的偏移。 |
.find() | 在目前集合的所有元素中,根據 CSS 選取器找到指定的後代節點的集合。 |
.children() | 在目前集合的所有元素中,取得直接子元素組成的集合。 可以傳入一個 CSS 選取器作為參數,對子元素進行過濾。 |
.has() | 在目前集合的所有元素中,篩選出含有指定子元素的元素。 參數可以是 CSS 選取器或 DOM 元素。 |
.parent() | 取得目前集合中,所有元素的直接父元素的集合。 可以傳入一個 CSS 選取器作為參數,僅傳回與該參數匹配的父元素的集合。 |
.parents() | 取得目前集合中,所有元素的祖先元素的集合。 可以傳入一個 CSS 選取器作為參數,僅傳回與該參數匹配的祖先元素的集合。 |
.parentsUntil() | 取得目前集合中,每個元素的所有父輩元素,直到遇到和第一個參數匹配的元素為止(不包含匹配元素)。 第一個參數可以是 CSS 選取器、DOM 元素、JQ 物件。 可以傳入第二個參數,必須是 CSS 選取器,表示僅傳回和該參數匹配的元素。 若沒有指定參數,則所有的祖先元素都將被匹配,即和 |
.prev() | 取得目前集合中所有元素的前一個同級元素組成的集合。 可以傳入一個 CSS 選取器作為參數,僅取得和該參數匹配的同級元素的集合。 |
.prevAll() | 取得目前集合中所有元素的前面的所有同級元素組成的集合。 可以傳入一個 CSS 選取器作為參數,僅取得和該參數匹配的同級元素的集合。 |
.prevUntil() | 取得目前集合中,每個元素前面所有的同級元素,直到遇到和第一個參數匹配的元素為止(不包含匹配元素)。 第一個參數可以是 CSS 選取器、DOM 元素、JQ 物件。 可以傳入第二個參數,必須是 CSS 選取器,表示僅傳回和該參數匹配的元素。 |
.next() | 取得目前集合中所有元素的後一個同級元素組成的集合。 可以傳入一個 CSS 選取器作為參數,僅取得和該參數匹配的同級元素的集合。 |
.nextAll() | 取得目前集合中所有元素的後面的所有同級元素組成的集合。 可以傳入一個 CSS 選取器作為參數,僅取得和該參數匹配的同級元素的集合。 |
.nextUntil() | 取得目前集合中,每個元素後面所有的同級元素,直到遇到和第一個參數匹配的元素為止(不包含匹配元素)。 第一個參數可以是 CSS 選取器、DOM 元素、JQ 物件。 可以傳入第二個參數,必須是 CSS 選取器,表示僅傳回和該參數匹配的元素。 |
.closest() | 從目前元素向上逐級匹配,傳回最先匹配到的元素。 參數可以是 CSS 選取器、DOM 元素、JQ 物件。 |
.siblings() | 取得目前集合中,每個元素的兄弟元素。 可以傳入一個 CSS 選取器作為參數,僅取得和該參數匹配的兄弟元素。 |
.add() | 添加元素到目前集合中。 參數可以是 HTML 字串、CSS 選取器、JQ 物件、DOM 元素、DOM 元素陣列、NodeList。 |
.empty() | 移除目前元素中所有的子元素。 |
.remove() | 從 DOM 中移除目前集合中的元素。 可以傳入一個 CSS 選取器作為參數,僅移除與該參數匹配的元素。 |
.prepend() | 在目前集合的元素内部的前面插入指定內容。 參數型態可以是 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。支援傳入多個參數。 也可以傳入一個傳回 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件的回呼函式,函式的第一個參數是目前元素的索引位置,第二個參數是元素的原始 HTML,函式中的 該方法傳回原始集合。 |
.prependTo() | 把目前集合中的元素追加到指定元素内部的前面。 參數可以是 CSS 選取器、HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。 該方法傳回原始集合。 |
.append() | 在目前集合的元素内部的後面插入指定內容。 參數型態可以是 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。支援傳入多個參數。 也可以傳入一個傳回 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件的回呼函式,函式的第一個參數是目前元素的索引位置,第二個參數是元素的原始 HTML,函式中的 該方法傳回原始集合。 |
.appendTo() | 把目前集合中的元素追加到指定元素内部的後面。 參數可以是 CSS 選取器、HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。 該方法傳回原始集合。 |
.after() | 在目前集合的元素後面插入指定內容,作為其兄弟節點。 參數型態可以是 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。支援傳入多個參數。 也可以傳入一個傳回 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件的回呼函式,函式的第一個參數為目前元素的索引位置,第二個參數為元素的原始 HTML,函式中的 該方法傳回原始集合。 |
.insertAfter() | 把目前集合中的元素插入到目標元素的後面,作為其兄弟元素。 如果目前集合中的元素是頁面中已有的元素,則將移動該元素,而不是複製。如果有多個目標,則將複製目前集合中的元素,並添加到每個目標元素的後面。 可以傳入一個 HTML 字串、CSS 選取器、DOM 元素、DOM 元素陣列、JQ 物件作為參數,來指定目標元素。 |
.before() | 在目前集合的元素前面插入指定內容,作為其兄弟節點。 參數型態可以是 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。支援傳入多個參數。 也可以傳入一個傳回 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件的回呼函式,函式的第一個參數為目前元素的索引位置,第二個參數為元素的原始 HTML,函式中的 該方法傳回原始集合。 |
.insertBefore() | 把目前集合中的元素插入到目標元素的前面,作為其兄弟元素。 如果目前集合中的元素是頁面中已有的元素,則將移動該元素,而不是複製。如果有多個目標,則將複製目前集合中的元素,並添加到每個目標元素的後面。 可以傳入一個 HTML 字串、CSS 選取器、DOM 元素、DOM 元素陣列、JQ 物件作為參數,來指定目標元素。 |
.replaceWith() | 用指定元素來替換目前集合中的元素。 參數可以是 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件。 也可以傳入一個傳回 HTML 字串、DOM 元素、DOM 元素陣列、JQ 物件的回呼函式,函式的第一個參數為目前元素的索引位置,第二個參數為元素的原始 HTML,函式中的 該方法傳回原始集合,即被替換掉的集合。 |
.replaceAll() | 用目前集合中的元素替換指定元素。 參數為 CSS 選取器、DOM 元素、DOM 元素陣列、JQ 物件。 該方法傳回原始集合,即用於替換的元素的集合。 |
.clone() | 透過深度複製來複製集合中的所有元素。 透過原生 |
.serializeArray() | 把表單元素的值組合成由 該方法可對單獨表單元素進行操作,也可以對整個 |
.serialize() | 將表單元素的值序列化。 |
.on() | 為集合中每個元素的特定事件繫結事件處理函式。具體用法見下方範例: |
.one() | 為每個匹配元素的特定事件繫結事件處理函式。但事件只會觸發一次。 該方法的用法和 |
.off() | 為集合中每個元素解除繫結的事件。具體用法見下方範例: |
.trigger() | 觸發指定的事件。具體用法見下方範例: |
$.ajaxSetup() | 為 Ajax 請求設定全域配置參數。 詳細參數清單見下方的 AJAX 參數。 |
$.ajax() | 發送 AJAX 請求,傳回 Promise。 詳細參數清單見下方的 AJAX 參數。 |
.ajaxStart() | 全域 AJAX 事件。 AJAX 請求開始時執行函式。 |
.ajaxSuccess() | 全域 AJAX 事件。 AJAX 請求成功時執行函式。 |
.ajaxError() | 全域 AJAX 事件。 AJAX 請求發生錯誤時執行函式。 |
.ajaxComplete() | 全域 AJAX 事件。 AJAX 請求完成時執行函式。 |
| 參數名稱 | 類型 | 預設值 | 說明 |
|---|---|---|---|
url | String | 目前頁面的 URL。 | 請求的 URL 地址。 |
method | String | GET | 請求方式。 包括:GET、POST、PUT、PATCH、HEAD、OPTIONS、DELETE |
data | any | '' | 發送到伺服器的資料。 |
processData | Boolean | true | 是否把傳遞進來的資料轉換成查詢字串發送。 |
async | Boolean | true | 是否為非同步請求。 |
cache | Boolean | true | 是否從快取中讀取。只對 GET、HEAD 請求有效。 |
username | String | '' | HTTP 存取認證的使用者名稱。 |
password | String | '' | HTTP 存取認證的密碼。 |
headers | Object | {} | 新增到 Headers 中的資料。可以在 值為字串或 |
xhrFields | Object | {} | 設定在 XMLHttpRequest 物件上的資料。 |
statusCode | Object | {} | HTTP 狀態碼和函式組成的物件。 狀態碼在 200 - 299 之間、或狀態碼為 304 時,表示請求成功,函式參數和 |
dataType | String | text | 伺服器傳回的資料類型。 包括:text、json |
contentType | String | application/x-www-form-urlencoded | 內容的編碼類型。為 false 時將不設定 Content-Type。 |
timeout | Number | 0 | 請求的超時時間(毫秒)。為 0 時表示永不超時。 |
global | Boolean | true | 是否觸發全域 AJAX 事件。 |
beforeSend | Function | 在請求發送之前呼叫。傳回 | |
success | Function | 請求成功之後呼叫。 | |
error | Function | 請求出錯時呼叫。 | |
complete | Function | 請求完成之後呼叫。 |
注意:下面這些方法只在 mdui 框架中存在,若你直接使用 mdui.jq 函式庫,則不存在這些方法。
.reflow() | 強制重繪目前元素。 |
.transition() | 設定目前元素的 可以是帶單位的時間值,也可以不帶單位。若不帶單位,則將自動添加 |
.transitionEnd() | 在目前元素上添加 transitionend 事件回呼。 回呼函式的參數為 |
.transform() | 設定目前元素的 |
.transformOrigin() | 設定目前元素的 |
.mutation() | 執行在目前元素及其子元素內註冊的初始化函式。 |
$.showOverlay() | 建立並顯示遮罩,傳回遮罩層的 JQ 物件。 可以傳入一個整數參數,表示遮罩層的 |
$.hideOverlay() | 隱藏遮罩層。 如果呼叫了多次 |
$.lockScreen() | 鎖定頁面,禁止頁面捲動。 |
$.unlockScreen() | 解除頁面鎖定。 如果呼叫了多次 |
$.throttle() | 函式節流。 傳入一個函式作為參數,函式的第一個參數是執行的函式,第二個參數是延遲時間,單位為毫秒。 |
$.guid() | 產生一個全域唯一的 ID。 可以傳入一個參數。當該參數值對應的 guid 不存在時,會產生一個新的 guid,並傳回;當該參數對應的 guid 已存在,則直接傳回已有 guid。 |