モバイル デバイス用の jquery モバイル イベント タイプ。
1.タッチイベント。
タップは、完全なクリック操作と同様に、画面をすばやくタッチして終了します。
タップホールド 画面をタッチして一定時間押し続けます。
1 秒以内に画面のピクセルが水平方向に 30px 移動すると、スワイプがトリガーされます。
swipeleft 左にスライド
右にスライドするようなスワイプライト。
2.方向転換イベント
モバイル デバイスの向きが変わると、orientationchange イベント関数がトリガーされます。イベントのコールバック関数の 2 番目のパラメーターは、現在の向きを識別するために使用されるパラメーターを返します。
このパラメータには、ポートレート (垂直) とランドスカルプ (水平) の 2 つの戻り値があります。
3. スクロールイベント、
scrollstart このイベントは、スクロールが開始されるときにトリガーされます。
このイベントは、スクロールが終了するとトリガーされます。
4. 表示/非表示
Pagebeforeshow イベントは、アニメーション効果を通じてビューが画面に表示され始める前にトリガーされます。
Pagebeforehide は、アニメーション効果によってビューが非表示になり始める前にイベントをトリガーします。
Pageshow イベントは、アニメーション効果を通じてビューが画面に表示されるときにトリガーされます。
Pagehide は、アニメーション効果によってビューが非表示になったときにトリガーされます。
$("div").live("pageshow",function(event,ui){ alert("this page just hidden"+ui.prevPage) })
5. マウスイベントをシミュレートします
vmouseover はタッチ イベントとマウスオーバー イベントを均一に処理します。
vmousedown は、タッチ イベントとマウス プレス イベントを均一に処理します。
vmousemove は、タッチ イベントとマウス移動イベントを均一に処理します。
vmouseup は、タッチ イベントとマウス ボタンのリリース イベントを均一に処理します。
vclick は、タッチ イベントとマウス クリック イベントを均一に処理します。
vmousecancel は、タッチ イベントとマウス離脱イベントを均一に処理します。
ページビュー補助
1.$.mobile.changePage
関数型プログラミングを通じて 2 つのビュー間の切り替え効果を変更します。通常、切り替え効果は、ハイパーリンクをクリックするとき、またはフォームを送信するときにカスタマイズされます。
文法:
$.mobile.changePage(to,options); to 是必选参数, 可以传递的参数类型包括字符串,对象。 options 可选,传递的是一个JSON 数据格式对象, 用法: 以下实例将改变decondPage.html 的页面效果 $.mobile.changePage("secondPage.html",{ transition:"slidedown" })
フォーム送信操作
$.mobile.changePage("submit.php",{ type:"post"; data:$("form#add").seriaize(); })
2.$.mobile.loaPage
主な機能は、外部ページをロードし、現在のページの DOM 要素に挿入することです。
$.mobile.loadPage(url,options);
URL は必須パラメータであり、絶対または相対 URL アドレスを渡します
オプションはオプションのパラメーターであり、JSON データ オブジェクトを渡します。
例:
$.mobile.loadPage("secomdPage.html"); 提交表单并加载结果页面: $.mobile.loadPage("result.php",{ type:"get", data:$("form#search").serizlize(); })
資料儲存:
1.jqmData()方法;
可以在元素上綁定任意資料。
$.mobile.jqmData(element,key,value)
element 參數是指定需要綁定資料的元素;
key 需要綁定資料的屬性名,
value 綁定的資料。
2.jqmRemoveData() 方法:
此方法是移除綁定在元素上的data數據,
$.mobile.jqmRemoveData([name])
name 是選用參數,指定需要移除哪個data屬性,如果不穿參數,則需要移除元素上的所有資料。
3.jqmHasData() 方法
判斷元素上是否存在綁定 的數據,
$.mobile.jqmHasData(element);
element 參數是一個進行資料檢查的DOM元素。
位址路徑輔助工具:
1.解析URL 位址
$.mobile.path.parseUrl 函數解析一個Url 指定, 並傳回一個含有所有參數值的對象,讓我們很輕易的存取Url位址上的參數屬性。
parseUrl 函數的語法
$.mobile.path.parseUrl(url);
url 參數是一個相對或絕對的URL位址,必選傳入的參數。
parseUrl 函數傳回一個對象,物件內包含豐富的屬性。
屬性: hash 說明:#號後面的所有的字元內容,相當於location 的hash
屬性: host 說明:URL的主機名稱和連接埠號碼
屬性: hostname 說明:傳回只包含URL 的主機名稱。
屬性: href 說明:傳回整個URL位址。
屬性: pathname 說明:傳回檔案或目錄的關聯路徑
屬性: port 說明:請求回傳Url的連接埠號碼
屬性:portocol 說明:傳回請求Url 位址的協議,如 http https
屬性:search 說明:傳回位址中「?」後面的請求參數
屬性:authority 說明:傳回使用者名,密碼,主機名,連接埠號碼組成的位址,
屬性:directiry 說明:傳回請求網址的目錄路徑,
屬性:domain 說明:傳回 protocal 協定和authority 組成的路徑
屬性:filename 說明:傳回請求的Url檔名
屬性:hrefOfHash 說明:傳回不包含hash 值的URL 路徑。
屬性:hrefOfSearch 說明:傳回不包含請求參數和hash值的URL 路徑。
屬性:password 說明:傳回請求URL 中的密碼 如ftp 協定密碼。
屬性: username 說明:傳回請求URL中的使用者名,如ftp 協定的使用者名稱。
loading 顯示/隱藏
顯示loading 對話框的方法是
$.mobile.showPageLoadingMse();
隱藏loading 對話框的方法是
$.mobile.hidePageLoadingMse();
JQuery Mobile 與 HTML5 的 3個優點
1. 上手迅速並支援快速迭代:在一個星期多一點的時間裡,透過閱讀JQuery Mobile文件以及O'Reilly出版的JQuery Mobile書籍,我完成了一個可以工作的app初步版本。在此之前我沒有HTML5 / JQuery Mobile開發經驗。與Android和iOS相比,使用JQuery Mobile和HTML5建立你的UI和邏輯會比在原生系統下建置快得多。
譯註:原生系統:原廠的作業系統,例如Android原生系統是Google發布未經修改的系統。在本文中,原生應用程式指直接用系統提供的API開發的程序,與JQuery Mobile開發的程序相對應。
我發現Apple的Builder介面的學習曲線十分陡峭,同樣學習令人費解的Android版面系統也很耗時間。此外,要使用原生程式碼將一個list view連接到遠端的資料來源並且具有漂亮的外觀是十分複雜的(在Android上是ListView, 在iOS上是UITableView)我能夠透過已經掌握的JavaScript和HTML/CSS知識快速實現相同的功能,無需學習新的adapter,delegate等等抽象概念,只要編寫JQuery程式碼就可以做到。
2.避免麻煩的應用程式商店審核過程以及調試、構建帶來的痛苦:為手機開發應用,尤其是iOS系統的手機,最痛苦的過程莫過於通過Apple應用商店的審批。想要讓一個原生應用程式發布給iOS用戶,你需要等待一個相當長的過程(需要好幾天,甚至可能是好幾週)。不僅在第一次發布程式時要經歷磨難,以後的每一次升級也是如此。這使得QA和發布流程變得複雜,還會增加額外的時間。由於JQuery Mobile應用程式只是一種web應用程序,因此它繼承了所有web環境的優點:當用戶加載你的網站時,他們就馬上「升級」到最新的版本。可以馬上修復bug和添加新的功能。即使是在Android系統——應用程式市場的要求比起Apple環境寬鬆得多,在用戶不知不覺中完成產品升級也是一件很好的事情。
進一步的好處是,發布beta或測試版本會更加容易。只要告訴用戶用瀏覽器打開你的網址就可以了!不需要考慮iOS令人抓狂的DRM,也不需要理會Android必須的APK。
3.支援跨平台和跨裝置開發:一個巨大的好處是,我的應用程式馬上可以在Android和IOS上工作,同樣也可以在其他平台上工作。作為一個獨立開發者,為不同的平台維護基礎程式碼是一項巨大的工作。為單一手機平台編寫高品質的手機應用程式需要全職工作,為每個平台重複做類似的事情需要大量的資源。應用程式能夠在Android和IOS設備上同時工作對我來說是一個巨大收穫。
更進一步,尤其是對於運行Android各種分支的設備,它們大小和形狀各異,想要讓你的應用程式在各種螢幕解析度的手機上看起來都不錯,這是真正的挑戰。對於要求嚴格的Android開發者來說,按照螢幕大小進行設螢幕分割(從完全最小化到最大進行縮放)會需要很多開發時間。由於瀏覽器會在每個裝置上以相同的方式呈現,因此關於這個方面你不必有任何擔心。