2008年12月12日 星期五

偷學ㄧ招 JQuery

  1. /*在 <body>...</body> 內放置超連結 a 元素和一個 id 為 mytext 的 div 元素*/
  2. <a href="http://www.google.com.tw/" id="link">Google</a>
  3. <div id="mytext"></div>
  4.    
  5. /*在 <head>...</head> 內加入下列 script*/
  6. <script type="text/javascript">
  7. /* 建立 onload 事件 */
  8. $(function(){
  9.   /* 建立 id 為 link 元素的 mouseover 滑鼠移入事件 */
  10.   $("#link").mouseover(function(){
  11.     /* 將 id 為 mytext 元素的 inline 內容改為 link 元素的 inline 文字 */
  12.     $("#mytext").html($("#link").html());
  13.   });
  14.        
  15.   /* 建立 id 為 link 元素的 mouseout 滑鼠移出事件 */
  16.   $("#link").mouseout(function(){
  17.     /* 將 id 為 mytext 元素的 inline 內容清空 */
  18.     $("#mytext").html("OOKK");
  19.   });
  20. });
  21. </script>

頁面讀取完成即聚焦於第一個表單元件,並加入聚焦提示。送出時驗證是否都有填寫資料,若無則浮現提示文字,表單送出後將 submit 按鈕停用。

 

  1. <form action="javascript:void(0);" id="form1">
  2.     <div>
  3.       <label for="uname">姓名:</label>
  4.       <input type="text" name="uname" id="uname" class="input" />
  5.       <span id="name_msg" class="msg"></span>
  6.     </div>
  7.     <div>
  8.       <label for="pwd">密碼:</label>
  9.       <input type="password" name="pwd" id="pwd" class="input" />
  10.       <span id="pwd_msg" class="msg"></span>
  11.     </div>
  12.     <p><input type="submit" /></p>
  13.   </form>

Javascript 源碼

  1. /* 頁面 onload 事件 */
  2. $(function(){
  3.   /* 定義 boolean 變數,記錄是否驗證成功 */
  4.   var flag = false;
  5.  
  6.   /* 加入 input 類型為 text, password 元件的聚焦事件 */
  7.   $(":text, :password").focus(function(){
  8.     /* 將這些物件聚焦時的 css 設為 1 像素的黑色邊框,底色為淡黃色 */
  9.     $(this).css({border: "1px solid #000", background: "#ffea45"});
  10.   });
  11.   /* 加入 input 類型為 text, password 元件的失焦事件 */
  12.   $(":text, :password").blur(function(){
  13.     /* 將這些物件失焦時的 css 設為 1 像素的灰色邊框,底色為白色 */
  14.     $(this).css({border: "1px solid #ccc", background: "#fff"});
  15.   });
  16.   /* 表單送出事件加入 submit 按鈕停用 */
  17.   $("form").submit(function(){
  18.  
  19.     /* 驗證表單內命名為 uname 的元件是否有值,若無則顯示提示文字。
  20.        ※這邊使用了 jQuery 的串接特色
  21.        ※find 為尋找元素的函式 */
  22.     if($(this).find("input[@name=uname]").val() == ""){
  23.       $("#name_msg").html("請輸入姓名").css("color", "#f00").fadeIn();
  24.       flag = false;
  25.     }else{
  26.       $("#name_msg").hide();
  27.       flag = true;
  28.     }
  29.    
  30.     /* 驗證表單內命名為 pwd 的元件是否有值,若無則顯示提示文字 */
  31.     if($(this).find("input[@name=pwd]").val() == ""){
  32.       $("#pwd_msg").html("請輸入密碼").css("color", "#f00").fadeIn();
  33.       flag = false;
  34.     }else{
  35.       $("#pwd_msg").hide();
  36.       flag = true;
  37.     }
  38.    
  39.     /* 若驗證通過則停用 submit 按鈕,反之則取消送出 */
  40.     if(flag)
  41.       $(":submit").attr("disabled", "true");
  42.     else
  43.       return false;
  44.   });
  45.  
  46.   /* 選擇第一個 input 元件,並加入聚焦(focus)事件 */
  47.   $("input:first").focus();
  48. })


JQuery 在網頁執行的時候
會load一次JQuery 的function

但是如果用ajax時,因為第一次抓的時候,並沒有抓到ajax的頁面
所以當用ajax並更出來的頁面,就不會執行JQuery function的指令。

jQuery.ajaxComplete(function(){//你要做的事});

 

寫給設計人的10個jQuery特效

http://easonyo.pixnet.net/blog/post/22888002

15天學會jQuery (11-15)

http://easonyo.pixnet.net/blog/post/22802674