jQuery Mobile高手必備的十大技巧和代碼片段

與任何新技術一樣,常常難就難在如何開始入手。

有鑑於此,我們整理出了與jQuery Mobile庫有關的我認爲最便利的一些技巧、方法和代碼片段。

jQuery Mobile

由於本文不是旨在全面介紹使用jQuery Mobile庫的入門知識,會忽略掉一些相當淺顯的東西,而是直接探討一些相當棘手的東西。

另外歡迎留言,告訴我們你覺得哪些代碼片段很實用,以及你所知道的其他任何實用的代碼片段。

1、完整的基本頁面

我一再發現自己需要爲基本頁面建立完整的標記。正因爲如此,下面是創建一個基本頁面所需要的全部代碼。

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>Page Title</title> 
  5. <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" /> 
  6. <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script> 
  7. <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script> 
  8. </head> 
  9. <body> 
  10. <div data-role="page" id="home"> 
  11.  <div data-role="header"> 
  12.   <h1>Header</h1> 
  13.  </div> 
  14.  <div data-role="content"> 
  15.   <p>Content goes here</p> 
  16.  </div> 
  17.  <div data-role="footer"> 
  18.   <h4>Footer</h4> 
  19.  </div> 
  20. </div> 
  21. </body> 
  22. </html> 

jQuery Mobile

2、何處添加額外的jQuery調用

當我開始使用jQuery的這個優秀擴展時,立即發現自己需要在觸發移動插件之前改動頁面上的內容。

結果發現,建議的解決辦法就是隻要把傳統的jQuery調用放在裝入移動插件的引用之前。這樣,你的jQuery命令就有機會在庫裝入之前運行。下面是要遵照的模式:

  1. <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" /> 
  2. <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script> 
  3. <script> 
  4.  $(document).ready(function() { 
  5.   // Your jQuery commands go here before the mobile reference 
  6.  }); 
  7. </script> 
  8. <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script> 

何處添加額外的jQuery調用的代碼

3、同時禁用所有鏈接的AJAX導航

儘管AJAX導航技術很出色,但有時候你倒希望禁用它。使用這一段jQuery代碼,告訴jQuery Mobile庫不要使用AJAX導航。

把它放在頁面標題中jQuery Mobile庫引用的後面。換句話說,庫必須已經在該代碼被引用之前裝入完畢。

  1. <script> 
  2.  $(document).ready(function() { 
  3.   // disable ajax nav 
  4.   $.mobile.ajaxLinksEnabled = false
  5.  }); 
  6. </script> 

同時禁用所有鏈接的AJAX導航

4、阻止一些關鍵項目被截斷

庫的一項特性(或者是缺點,就看你的需要了)在於,它能夠智能化地截斷很長的項目,以適應用戶界面元素。

我發現在兩種情況下這可能很煩人。首先在列表項目中,我更喜歡看到全部文本。其次是在腳註文本中。一旦你在這裏有好多個字符,它似乎就會開始用“…”來截斷。使用這個簡單的CSS來覆蓋這兩種默認情況。

對於列表項目:

  1. body .ui-li .ui-li-desc { 
  2.  white-space: normal; 
  3.  } 

對於腳註內容:

  1. body .ui-footer .ui-title { 
  2.  white-space: normal; 
  3.  } 

5、使用媒體查詢來鎖定設備

我在使用這個庫時最先遇到的問題之一是,如何使用CSS來鎖定設備(根據屏幕尺寸)。比如說,我想要爲iPad設計兩列布局、爲智能手機設計單列布局。要做到這一點,最佳辦法絕對是使用媒體查詢。

只要一些簡單的媒體查詢已到位,你就能迅速讓CSS鎖定屏幕尺寸。有了這種鎖定技術,我們就能依賴傳統的CSS方法,根據可用的屏幕空間來迅速創建不同的佈局。

這方面的兩篇出色的文章是:

CSS-Tricks網站的《CSS媒體查詢和使用可用空間

Stuff and Nonsense網站的《切合實際的CSS3媒體查詢

6、用jQuery鎖定平臺

儘管我們很想爲某些設備執行某些CSS,但我們也想只在特定的設備上運行jQuery。下面對來自Snipplr的一些代碼作了改動,那樣我很容易把jQuery的一部分隔離開來,以便根據用戶的設備來運行。

  1. var deviceAgent = navigator.userAgent.toLowerCase(); 
  2.  var agentID = deviceAgent.match(/(iphone|ipod|ipad|android)/); 
  3.  if(agentID.indexOf("iphone")>=0){ 
  4.   alert("iphone"); 
  5.  } 
  6.  if(agentID.indexOf("ipod")>=0){ 
  7.   alert("ipod"); 
  8.  } 
  9.  if(agentID.indexOf("ipad")>=0){ 
  10.   alert("ipad"); 
  11.  } 
  12.  if(agentID.indexOf("android")>=0){ 
  13.   alert("android"); 
  14.  } 

7、爲表單動作屬性的目標使用完全路徑

jQuery Mobile庫的一個不便之處似乎在於,很難找到張貼表單的目標頁面;也就是說,除非你使用來自網站根目錄的完全路徑。

比如說,我發現這個表單標籤從來找不到其目標:

  1. <form action=" form-handler.php " method="get" > 

而像這樣的完全路徑可以起到應有的工作:

  1. <form action="/current-directory/form-handler.php" method="get" > 

另外,還要確信來自表單處理程序的結果會生成一個完整、有效的jQuery Mobile頁面,如第一個技巧所示。

8、創建彈出式對話框

jQuery Mobile庫的一項便利特性就是內置的彈出內容或對話框特性。創建這項便利的特性簡單得很。基本上只要添加需要鏈接的屬性,如下所示:data-rel="dialog"。

注意兩點。首先,目標頁面必須是完整的jQuery Mobile頁面,如第一個技巧所概述。其次,這隻適用於外部頁面;它必須是完整的單獨頁面才能正常工作。

  1. <a href="#pop.html" data-rel="dialog">Pop up!</a>  

jQuery Mobile

9、“Cancel”和“Save”組合按鈕

這段代碼滿足了兩個基本要求。第一個要求是,讓兩個按鈕彼此相鄰。幸好,jQuery Mobile庫有一種內置的列結構,只要使用標籤和合適的類,很容易利用這種結構,如下所示。第二個要求是,讓兩個按鈕有不同的主題。這段代碼直接來自說明文檔,我把它留在手邊,以便經常使用。

  1. <fieldset> 
  2.  <div><button type="submit" data-theme="c">Cancel</button></div> 
  3.  <div><button type="submit" data-theme="b">Submit</button></div> 
  4. </fieldset> 

10、自行創建列結構

我在竭力爲多個設備設計最佳的單個頁面結構時,發現自己經常結合運用上述的媒體查詢技巧和“隨意順序的列”(columns in any order)方法。

幸好,Web開發人員很早以前就弄清楚瞭如何移動列。結合運用這個方法和媒體查詢,我們就可以根據所處理的屏幕尺寸,很容易創建各種結構。

Position Is Everything網站展示了最容易使用的方法之一。

結論

jQuery Mobile庫處理起來很方便。只要稍微下一點工夫,它就能獲得出色的效果。考慮到它目前仍處於測試階段,所以它起步不錯。但願你在不斷鑽研這個新的庫時,這些快速技巧能讓你不斷前進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章