標籤為 “jQuery” 的文章

表單提交(submit)時使用preventDefault可能產生的問題


在表單內的任一輸入框按下Enter後,預設情況下表單會自動提交,若使用preventDefault阻止後,表單將從此不能Submit,怎麼辦?

一般我們設計HTML表單後,若在Form內的文字框按下Enter,預設會觸發Submit事件,造成表單提交。但若有某些文字框我們有特別的用途,希望它按下Enter後不要Submit表單,而是去做一些特定的動作,此時我們可以先使用preventDefault,之後再讓表單可以被Submit嗎?
繼續閱讀

淺談 jQuery圖片延遲載入特效 LazyLoad 原理


LazyLoad特效,其實已經流行好一陣子了,它是一個jQuery的外掛,可以讓還沒出現在畫面上的網頁元素先別載入,直到使用者捲動捲軸,移到該元素時,它才載入。這對於網站上塞滿圖片的人可是一大福音,因為使用LazyLoad技巧,可以提升網站的載入速度。

Wow,這是怎麼辦到的? 繼續閱讀

使用javascript (或jQuery)對SEO影響的迷思

[圖片來源:blog.sharkspace.com]

近遇到想做SEO的客戶,因為該客戶現有的網站選單,主要以Flash製作,觀看網站的原始碼就很容易了解spider應該很難分析全站的架構。不過因為該站經營三、四年了,除了要修改選單為適合SEO的方式,我想最好也要保持選單與視覺設計的一致性,除了不要破壞視覺識別,也希望讓操作性的影響降到最低。
繼續閱讀

jQuery外掛-EZJax讓你輕鬆使用AJAX載入動態內容!

實jQuery本身透過.load函式就簡化了非常多傳統統AJAX的使用步驟,而EZJax外掛更加簡化,讓幾乎不懂AJAX原理與細節的人也能很容易的達成動態載入內容的功能,除了有助於搜尋引擎最佳化(SEO)外,在載入內容時也能安排一些滑動或漸入漸出的特效。

另外根據官網的說明,此外掛支援 IE6以上, FireFox, Safari, 及 Opera。先到EZJax官網下載EZJax,然後就開始試用吧!

要使用EZJax外掛,首先當然是載入EZJax:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.ezjax.js"></script>

下一步就是呼叫ezjax,進行初始化,然後就可以用囉:

$(document).ready(function(){<br />  $('.ezjax').ezjax();<br />});

接下來的code,就是動態載入123.html的內容到指定的區域,首先放一個class為ezjax的連結:

<a class="ezjax" href="http://www.blogger.com/123.html">載入</a>

我們希望點下連結後,會動態載入另一個頁面的內容,在想要秀出內容的地方放一個id為ezjax_content的div標籤就大功告成了:

<div id="ezjax_content"></div>

jQuery – 為什麼我們需要簡單強大的javascript函式庫?

Javascript在十幾年前的地位,還僅只是個修飾網頁介面的工具箱,雖然它號稱是做給非程式人員用的,但這簡直就是鬼話。約十幾年前,我在學校正開始學習寫網頁時,javascript僅是用來作跑馬燈、連結選單(mouse移到選項上會彈出選單可是當時超炫的功能)、萬年曆、計算機…等等效果的語言。

最近javascript被炒紅,完全是因為Ajax(Asynchronous JavaScript And XML)的關係。那為什麼Ajax會紅,就是web 2.0被炒紅的關係,沒錯,這些事在達康泡沫後讓大家都超興奮的。Ajax會被炒紅,也跟google和yahoo推出的應用服務有相當大的關係,這兩大巨人使用Ajax技術,讓頁面靈活有彈性,帶給使用者深刻的印象,自然Ajax也紅了,相關應用也像雨後春筍一樣大量露出了。

不過Ajax不是新東西,它是由以Javascript為主配方加上DHTML + DOM + CSS + XMLHttp + XML拼湊出來的應用技巧,讓javascript不在局限在客戶端應用,硬是把javascript立即反應的效果,延伸到Server端,帶來全新的使用經驗。

網站應用的功能、架構趨於成熟,其實還不足以讓普遍的使用者喜歡上它,我們都知道關鍵在介面操作。使用者也許完全不清楚程式架構,他們根本不在乎你的程式版本、架構,他們重視的是介面操作的體驗 (當然前提是功能運作正確)。於是javascript又開始受到重視了。

Ajax走紅,讓javascript得以被重新檢視,各式各樣的javascript framework/library也陸續推出,其中比較有名的有prototype, jQuery, YUI…等。基於個人喜歡簡潔、輕量級的工具,我直覺先選擇了jQuery來學習。

那麼jQuery是用來幹嘛的呢?

從前從前,網頁的原始碼就像一盤義大利麵,那時MVC(Model, View, Control)模式架構還沒普及,HTML語法包括了結構、內容、外觀的定義,直到動態網頁問世,把內容部份取代為server page的語法,開始從外部資料來源提取內容。後來開始有人對HTML的結構不滿意,XML就出現了,接著XHTML開始普及。外觀的更新需求,則是出現了XSL、CSS等。尤其是CSS在近幾年部落格服務中被大量應用,知名度也愈來愈高。

CSS的選擇器(Selector)概念被廣泛接受,就代表會有愈來愈多人熟悉這種概念,於是這種概念就成為「好用的特性」後選人之一了。jQuery聰明的作法,就是加以利用選擇器概念,網頁設計師只要定義出視覺元素、區塊,再來要用jQuery做出什麼樣的視覺效果,就變得簡單了。

jQuery它是一個javascript的函式庫,所以可以預期的是我們只要帶上它(目前最新版1.3.2的jQuery,是一個50幾k的js檔),就可以"簡單"的使用javascript,因為它幫我們把很多複雜的操作、判斷通通包裝成一個個簡單的函式了,有了現有的知識,jQuery就能大量簡化javascript的操作了。

jQuery簡易垂直滑動選單

作垂直的滑動選單再也不是難事了,這裡使用的是jQuery這個javascript的framework。以下開始介紹作法:

我們先來製作一下選單的部份,在body標籤內放上這樣的內容:

<dl>
  <dt><a href="#">Item1</a></dt>
  <dd>
    <ul>
      <li><a href="1.html">11111</a></li>
      <li><a href="2.html">22222</a></li>
    </ul>
  </dd>
  <dt><a href="#">Item2</a></dt>
  <dd>
      第二選單的內容在這裡: <br/><a href="a.html">aaaaa</a>
  </dd>
  <dt><a href="#">Item3</a></dt>
  <dd>
      <img width="180" src="http://events.jquery.com/img/jquery-logo.png">
  </dd>
</dl>

確認了選單的主結構及內容,我們就可以套上程式及CSS囉!~

請在head標籤內放上:

<script src="http://jquery.com/src/jquery.js"></script>
<script>
  $(document).ready(function(){ //網頁讀取完畢後
    //把所有dd標籤的內容都hide起來
    $("dd").hide();

    //按下dt元素連結
    $("dt a").click(function() {
      $("dd").slideUp("slow"); //子分頁

      //下一個主選單以下的內容要slide down
      $(this).parent().next().slideDown("slow");
       return false;
    });
  });
</script>

<style>
  dl { width: 200px; background: #fff;}
  dt { background: #775; padding: 2px; margin: 2px; }
  dd { margin: 2px; }
  dt a { color: #FFF; }
  dd a { color: #000; }
 </style>

如此就大功告成了!