溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jsquery簡單體驗

發(fā)布時間:2020-08-11 07:00:06 來源:ITPUB博客 閱讀:253 作者:okone96 欄目:編程語言

http://www.javaeye.com/topic/34087

Jquery是繼prototype之后又一個優(yōu)秀的Javascript框架。對prototype我使用不多,簡單了解過。但使用上jquery之后,馬上被她的優(yōu)雅吸引住了。有人使用這樣的一比喻來比較prototype和jquery:prototype就像Java,而jquery就像ruby.實際上我比較喜歡java(少接觸Ruby罷了)但是jquery的簡單的實用的確有相當大的吸引力?。≡陧椖坷镂野裫query作為自已唯一的框架類包。使用其間也有一點點心得,其實這些心得,在jquery的文檔上面也可能有講,不過還是記下來,以備忘罷。
一,找到你了!
還記得$()這個東西吧?prototype還是DWR都使用了這個函數代替document.getElementById()。沒錯,jquery也跟風了。為達到document.getElementById()的目的,jquery是這樣寫的:

代碼
  1. var someElement = $("#myId");

看起來比其他兩個框架的要多了一個#,好,看看下面的用法:

代碼
  1. $("div p");(1)
  2. $("div.container")(2)
  3. $("div #msg");(3)
  4. $("table a",context);(4)

在prototype里看過這樣的寫法嗎?第一行代碼得到所有
標簽下的

元素。第二行代碼得到class為container的

元素,第三行代碼得到
標簽下面id為msg的元素。第四行代碼得到context為上下文的table里面所有的連接元素。
如果你熟悉CSS,Xpath,你會覺得這些寫法很眼熟!對了。正是??闯鰥W妙了吧。jquery就是通過這樣的方式來找到Dom對象里面的元素。跟CSS的選擇器相類似。
二,Jquery對象?
jquery提供了很多便利的函數,如each(fn),但是使用這些函數的前提是:你使用的對象是Jquer對象。使一個Dom對象成為一個Jquery對象很簡單,通過下面一些方式(只是一部分):
代碼
  1. var a = $("#cid");(1)
  2. var b = $("<p>hellop>");(2)
  3. var c = document.createElement("table"); var tb = $(c);

三,代替body標簽的onload
這個慣例,也許是除了$()之外,用得最多的地方了。下面一段代碼:
代碼
  1. $(document).ready(function(){
  2. alert("hello");
  3. });(1)
  4. "alert('hello');">(2

上面兩段代碼是等價的。但代碼1的好處是做到表現和邏輯分離。并且可以在不同的js文件中做相同的操作,即$(document).ready(fn)可以在一個頁面中重復出現,而不會沖突?;旧螶qeury的很多plugin都是利用這個特性,正因為這個特性,多個plugin共同使用起來,在初始化時不會發(fā)生沖突。
不管怎么說,這個慣例可以分離javascript與HTML。推薦使用。
四,事件機制
我大量使用的事件可能就是button的onclick了。以前習慣在input 元素上寫onclick = "fn()",使用jquery可以使javascript代碼與html代碼分離,保持HTML的清潔,還可以很輕松地綁定事件,甚至你可以不知道“事件”這個名詞。
代碼
  1. $(document).ready(function(){
  2. $("#clear").click(function(){
  3. alert("i am about to clear the table");
  4. });
  5. $("form[0]").submit(validate);
  6. });
  7. function validate(){
  8. //do some form validation
  9. }

五,同一函數實現set&get
代碼
  1. $("#msg").html();
  2. $("#msg").html("hello");

上面兩行代碼,調用了同樣的函數。但結果卻差別很大。
第一行是返回指定元素的HTML值,第二行則是將hello這串字符設置到指定元素中。jquery的函數大部分有這樣的特性。
六,ajax
這是一個ajax橫行的時代。多少人,了不了解ajax的都跟著用上一把。呵。使用jquery實現ajax同樣簡單異常
代碼
  1. $.get("search.do",{id:1},rend);
  2. function rend(xml){
  3. alert(xml);
  4. } (1)
  5. $.post("search.do",{id:1},rend);
  6. function rend(xml){
  7. alert(xml);
  8. } (2)
  9. $("#msg").ajaxStart(function(){
  10. this.html("正在加載。。。。");
  11. });(3)
  12. $("#msg").ajaxSuccess(function(){
  13. this.html("加載完成!");
  14. });(4)

這些都是較常用的方法,get和post用法一樣。第一個參數是異步請求的url,第二個為參數,第三個回調方法。
3,4的方法會在指定的Dom對象上綁定響應ajax執(zhí)行的事件。當然,jquery的AJAX相關的函數不僅是這些,有興趣可以去研究再多。
七,漸入淡出
代碼
  1. $("#msg").fadeIn("fast");
  2. $("#msg").fadeOut("slow");

沒錯,上面兩行代碼已經分別實現了一個id為Msg的jquery對象的漸入和淡出。做一個像Gmail一樣的動態(tài)加載通知條,用jquery就那么簡單。兩個函數接受的參數除了快慢等,還可以接收整型,作為漸入或淡出的完成時間,單位為MS。
八,plugin
這也是一個插件的時代。
jquery插件給我的感覺清一色的清潔,簡單。如Jtip,要使用它的功能,只需要在你的元素的class上加上Jtip,并引入jtip.js及其樣式即可以了。其他事情插件全包。我喜歡jquery的一個重要原因是發(fā)現她已經有了很多很好,很精彩的插件。

寫得很爛??赡艽蠹铱床怀鰆query的好處。嗯,光聽是沒用的,試用一下吧。你會發(fā)覺很有趣。
暫時告一段落吧。待有新的發(fā)現再來分享。

[@more@]
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI