Tag for jquery

tinyMap – 自訂個人 Google Map 的 jQuery 擴充套件

 

這個擴充套件可以輕鬆建立自訂的 Google Map,舉凡尺寸、地圖類型和縮放控制、縮放等級,更能加入設定好的標記地點並填上說明。

下載位址

安裝

  1. <!-- Include Google Map API --> 
  2. <script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=<em>YOUR_API_KEY"></script> 
  3. <script type="text/javascript" src="jquery.tinymap-1.0.js"></script>

參數說明

  • width: 地圖寬度 (Number) /* 預設:640px */
  • height: 地圖高度 (Number) /* 預設:480px */
  • latlng: 地圖置中的座標或地址,若為座標請使用 [x, y],地址則直接輸入。
  • control: 顯示地圖類型選單 (Boolean) /* 預設:true */
  • zoom: 顯示地圖縮放選單 (Boolean) /* 預設:true */
  • zoomLevel: 預設地圖縮放等級 (Number) /* 預設:13 */
  • mapType: 預設地圖類型 (String) /* 選項:default, hybrid(混合), satellite(衛星) 預設:default */
  • marker: 標記群組 (JSON):

    [{addr:'標記地址或座標', text:'標記說明', icon:[圖示寬度, 圖示高度, 圖示位址]}]

範例:顯示高雄市政府地圖

若無法顯示 Object Frame 內容,請使用 IE 以外的瀏覽器。

  1. $(function(){
  2.  
  3.   var set1 = {
  4.     width: 639,
  5.     height: 359,
  6.     latlng: '高雄市苓雅區四維三路2號',
  7.     zoomLevel: 1˙
  8.   };
  9.  
  10.   $('#map1').tinymap( set1 );
  11.  
  12. });

範例:以衛星地圖及自訂圖示標示多個地點

若無法顯示 Object Frame 內容,請使用 IE 以外的瀏覽器。

  1. $(function(){
  2.  
  3.   var set1 = {
  4.     width: 639,
  5.     height: 359,
  6.     latlng: [22.638610116646756, 120.30184864997864],
  7.     mapType: 'satellite',
  8.     zoomLevel: 12,
  9.     marker: [
  10.       {addr:'高雄市鼓山區萬壽路350號', text:'<strong>壽山動物園</strong><br />高雄市鼓山區萬壽路 350 號', icon:[24, 24, '2.png']},
  11.       {addr:'高雄市左營區翠華路1435號', text:'<strong>蓮池潭</strong><br />高雄市左營區翠華路 1435 號', icon:[24, 24, '3.png']},
  12.       {addr:'高雄市苓雅區自強三路5號', text:'<strong>東帝士 85 大樓</strong><br />高雄市苓雅區自強三路 5 號', icon:[24, 24, '4.png']},
  13.       {addr:'高雄市左營區高鐵路105號', text:'<strong>台灣高鐵左營站</strong><br />高雄市左營區高鐵路 105 號', icon:[24, 24, '5.png']},
  14.       {addr:'高雄市三民區建國二路318號', text:'<strong>台鐵高雄車站</strong><br />高雄市三民區建國二路 318 號<br /><a href="http://service.tra.gov.tw/Kaohsiung/StationTimeTable/index.aspx">台鐵高雄車站</a>', icon:[24, 24, '6.png']}
  15.     ]
  16.   };
  17.  
  18.   $('#map1').tinymap( set1 );
  19.  
  20. });

更多範例請參考:tinyMap – 自訂個人 Google Map 的 jQuery 擴充套件

jQuery 台灣郵遞區號外掛 v1.1 update

這次更新主要是改寫了原有的結構變得更簡潔、效能更好,並修改下列幾項:

  • 可不需先建立 HTML 表單,由程式直接產生並直接指定表單元件名稱。
  • 加入 Css 的支援

參數說明

  • countyName: 指定縣市下拉清單名稱 (String) /* 若不指定則預設名稱為 zip_county[] */
  • areaName: 指定鄉鎮市區下拉清單名稱 (String) /* 若不指定則預設名稱為 zip_area[] */
  • zipName: 指定郵遞區號輸入框名稱 (String) /* 若不指定則預設名稱為 zip_code[] */
  • countySel: 縣市預設值 (String)
  • areaSel: 鄉鎮市區預設值 (String)
  • css: ['County ClassName', 'Area ClassName', 'Zip ClassName'] (Array)

自訂元件名稱範例

  1. // Javascript
  2. $('#container').twzipcode({
  3.   countyName: 'county',
  4.   areaName: 'area',
  5.   zipName: 'zip'
  6. });
  7.  
  8. // HTML
  9. <div id="container"></div>

完整範例請參考:jQuery 台灣郵遞區號外掛

JSONP 實做:使用 Google Ajax Search

範例網頁:JSONP 實做:使用 Google Ajax Search

Google Ajax Search with JSONP

※ 詭異的是,我使用 $.get 都只能收到 400 Bad Request,只能用 $.ajax 才能正常。

  1. $.ajax({
  2.       url: 'http://ajax.googleapis.com/ajax/services/search/web',
  3.       data:{
  4.         'key': gsearch.key,
  5.         'v': '1.0',
  6.         'q': encodeURIComponent(k), // + '+site:essoduke.org' 搜尋網站,
  7.         'rsz': 'large',
  8.         'hl': 'zh-TW',
  9.         'start': s
  10.       },
  11.           dataType: 'jsonp',
  12.           success: gsearch.fetch
  13.     });

參考資料:

Windows Media Player for Web

※剛剛發現我的 Firefox 不能正常運作,大概是 Plugin 的關係。

2009-07-03_201251

http://app.essoduke.org/mplayer

Feature / 特色

  • 相容 IE/Firefox 瀏覽器
  • 使用 JSON 格式媒體列表
  • 可顯示媒體名稱、時間軸、已播放/媒體時間
  • 可音量控制、重複播放、拖曳播放清單

Defect / 缺點

  • Opera / Safari 無法正常使用
  • 未加入隨機播放功能

Point / 重點摘要

  • 雖然已經有了支援各瀏覽器的播放語法,不過我還是針對了非 IE 瀏覽器建立 embed 標籤。
  • 播放器使用 Javascript 產生,並且將所有事件都寫成物件化,整個播放器就是一個物件。
  • 時間軸採用 setInterval 的方式每秒查詢目前的播放時間,換曲時要用 clearInterval 不然久了 IE 會當掉… XD
  • Firefox 監控 PlayStateChange 事件要使用 OnDSPlayStateChangeEvt function。
  • 播放清單要雙擊左鍵才會換曲!
  • 大概就醬了

[jQuery] 自動替表單元素加入 label for 屬性

通常在設計網頁時如果有包含表單元素,大多會使用 Label 標籤來定義說明,但是每個表單元素和 Label 標籤都要加上 id 和 for 屬性顯得有點麻煩。
所以下列函式就是用來替這些元素自動補上 for 和 id 屬性。

範例:http://beboss.idv.tw/autolabel.php

目前只抓取 label 前後的表單元素,若 label 和 表單元素之間有其他標籤則無作用,交給大家去解決吧 XD

  1. $(function(){ AutoLabel(); });
  2.  
  3. var AutoLabel = function(){
  4.   $('label').each(function(n){
  5.     //get the next object
  6.     var $obj = $(this).next();
  7.     //append id and for attributes into elements
  8.     switch( $obj.attr('type') ){
  9.       case 'text': case 'password': case 'radio': case 'checkbox':
  10.         $(this).attr('for', 'label' + n);
  11.         $obj.attr('id', 'label' + n);
  12.         break;
  13.     }
  14.     //in especial for textarea and select element
  15.     if(typeof($obj.get(0)) != 'undefined'){
  16.       switch($obj.get(0).tagName.toLowerCase()){
  17.         case 'textarea': case 'select':
  18.           $(this).attr('for', 'label' + n);
  19.           $obj.attr('id', 'label' + n);
  20.           break;
  21.       }
  22.     }
  23.     //same as above;
  24.     var $obj = $(this).prev(); //get the previous object
  25.     switch( $obj.attr('type') ){
  26.       case 'text': case 'password': case 'radio': case 'checkbox':
  27.         $(this).attr('for', 'label' + n);
  28.         $obj.attr('id', 'label' + n);
  29.         break;
  30.     }
  31.     if(typeof($obj.get(0)) != 'undefined'){
  32.       switch($obj.get(0).tagName.toLowerCase()){
  33.         case 'textarea': case 'select':
  34.           $(this).attr('for', 'label' + n);
  35.           $obj.attr('id', 'label' + n);
  36.           break;
  37.       }
  38.     }
  39.   });
  40. }
Pages: 1 2 3 Next

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.