自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

jQuery是如何工作的

開發(fā) 前端
最近發(fā)現(xiàn)jQuery很成熟了,我看了jQuery官方的document,這里先提供入門章節(jié)內(nèi)容。主要介紹jQuery是如何工作的。

我最近在做一個(gè)項(xiàng)目,需要用到ajax,我以前做ajax項(xiàng)目,已經(jīng)有很多年了,jQuery還不成熟,需要自己編寫大量的Javascript代碼。

最近發(fā)現(xiàn)jQuery很成熟了,我看了jQuery官方的document,這里先提供入門章節(jié)內(nèi)容。

專題:jQuery從入門到精通

對(duì)jQuery的簡(jiǎn)要介紹和一些需要了解的如何使用jQuery的概念

這段主要教授你如何開始使用jQuery. 如果你還沒有一個(gè)測(cè)試頁(yè)面,請(qǐng)先從按照下面的代碼創(chuàng)建一個(gè)HTML頁(yè)面。

  1. <!doctype html>  
  2. <html> 
  3.  <head> 
  4.     <meta charset="utf-8"> 
  5.     <title>Demo</title> 
  6.  </head> 
  7.  <body> 
  8.     <a href="http://jquery.com/">jQuery</a> 
  9.     <script src="jquery.js"></script>
  10.     <script> 
  11.     </script>
  12.  </body> 
  13. </html> 

編輯Script標(biāo)簽的src屬性,指向你的jQuery.js屬性。例如,如果你的jQuery.js和HTML文件在同一文件夾下:

  1. <script src="jquery.js"></script> 

頁(yè)面加載完成時(shí)運(yùn)行代碼

很多Javascript程序員都要做的第一件事情,就是加這樣的一些代碼到他們的程序:

  1. window.onload = function(){ alert("welcome"); } 

這段代碼將會(huì)在頁(yè)面加載成功時(shí)被正確執(zhí)行,但是,這段代碼的問題是Javascript代碼將會(huì)在所有的圖片信息被全部下載完成后執(zhí)行(這里包含了廣告欄)。這里使用首先Window.onload的原因是HTML在你最初運(yùn)行這段代碼的時(shí)候,HTML文檔并沒有完全加載。

To circumvent both problems, jQuery has a simple statement that checks the document and waits until it's ready to be manipulated, known as the ready event:

jQuery有一個(gè)很簡(jiǎn)單的聲明來(lái)檢查文檔,和判斷文檔是否已經(jīng)準(zhǔn)備完成,這里稱之為 ready event:

  1. $(document).ready(function(){  
  2.    // Your code here  
  3.  }); 

我們?cè)趓eady event中添加一個(gè)超鏈接點(diǎn)擊的處理方法。

  1. $(document).ready(function(){  
  2.   $("a").click(function(event){  
  3.     alert("Thanks for visiting!");  
  4.   });  
  5. }); 

保存HTML文件,在瀏覽器中刷新此文件,點(diǎn)擊網(wǎng)頁(yè)中的超鏈接,在連接到指定頁(yè)面之前首先會(huì)彈出一個(gè)提示框。

在點(diǎn)擊和其他的很多事件中,你可以在這里使用event.preventDefault()來(lái)阻止其進(jìn)行默認(rèn)行為。

  1. $(document).ready(function(){  
  2.    $("a").click(function(event){  
  3.      alert("As you can see, the link no longer took you to jquery.com");  
  4.      event.preventDefault();  
  5.    });  
  6.  }); 

完整示例

這里提供一個(gè)完整的HTML文件的示例來(lái)演示之前我們講述的內(nèi)容。注意這里連接到了Google’s CDN 來(lái)加載jQuery的核心庫(kù)。你最好將它放在一個(gè)單獨(dú)文件中,并且在Head標(biāo)簽中完成對(duì)它的加載。

  1. <!DOCTYPE html> 
  2.  <html lang="en"> 
  3.  <head> 
  4.    <meta charset="utf-8"> 
  5.    <title>jQuery demo</title> 
  6.  </head> 
  7.  <body> 
  8.    <a href="http://jquery.com/">jQuery</a> 
  9.    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
  10.    <script> 
  11.      $(document).ready(function(){  
  12.        $("a").click(function(event){  
  13.          alert("As you can see, the link no longer took you to jquery.com");  
  14.          event.preventDefault();  
  15.        });  
  16.      });  
  17.    </script> 
  18.  </body> 
  19.  </html> 

增加和刪除css樣式

重要: 接下來(lái)的jQuery示例需要放在ready event內(nèi),這樣在文檔準(zhǔn)備結(jié)束后立即執(zhí)行。

我們另一種常常做的事情,便是增加(或者刪除)一個(gè)css樣式。

首先我們?cè)?lt;head>標(biāo)簽內(nèi)增加一些樣式:

  1. <style>  
  2.     a.test { font-weight: bold; }  
  3.  </style> 

然后在代碼內(nèi)使用addClass方法

  1. $("a").addClass("test"); 

所有超鏈接會(huì)被加粗。

要?jiǎng)h除此樣式,只需要使用 remove class方法。 (允許添加多個(gè)樣式到html)

  1. $("a").removeClass("test"); 

特效

jQuery提供了一組特效,使用這些特效可以讓你的網(wǎng)站脫穎而出,你只需要將上面的測(cè)試文件添加如下代碼就可以進(jìn)行測(cè)試:

  1. $("a").click(function(event){  
  2.    event.preventDefault();  
  3.    $(this).hide("slow");  
  4.  }); 

如果你點(diǎn)擊超鏈接,你所點(diǎn)擊的超級(jí)鏈接會(huì)被隱藏。

回調(diào)函數(shù)

回調(diào)函數(shù)是指父方法運(yùn)行通過(guò)后傳遞參數(shù)并且進(jìn)行調(diào)用的函數(shù)?;卣{(diào)函數(shù)的特殊之處在父函數(shù)可以在回調(diào)函數(shù)運(yùn)行之前運(yùn)行。另一個(gè)重要的點(diǎn)是要知道如何正確的傳遞回調(diào)。這也是我常常忘記的正確語(yǔ)法。

無(wú)參數(shù)回調(diào)

你可以使用下面的代碼來(lái)設(shè)定回調(diào)參數(shù)。

  1. $.get('myhtmlpage.html', myCallBack); 

注意 第二個(gè)參數(shù)只包含回調(diào)函數(shù)的名字(不是字符串并且不包含括號(hào)對(duì)). Javascript的函數(shù)可以像參數(shù)一樣傳遞,并且在后面的代碼執(zhí)行。

包含參數(shù)的回調(diào)

你可能會(huì)這樣問,"如果包含參數(shù),你會(huì)怎么做?"。

錯(cuò)誤的方式

錯(cuò)誤的調(diào)用方式(不會(huì)被執(zhí)行)

  1. $.get('myhtmlpage.html', myCallBack(param1, param2)); 

這種方式并不會(huì)被調(diào)用,因?yàn)樗{(diào)用了

  1. myCallBack(param1, param2) 

它的執(zhí)行結(jié)果會(huì)被作為第二個(gè)參數(shù)傳遞給$get()函數(shù)

正確的方式

上面的方式問題在于 myCallBack在作為函數(shù)傳遞之前先被進(jìn)行了評(píng)估。Javascrip和的jQuery 將函數(shù)擴(kuò)展為函數(shù)指針,例如IE的設(shè)定Timeout函數(shù)。

下面的方法,創(chuàng)建了一個(gè)匿名函數(shù)并且注冊(cè)了回調(diào)函數(shù)。注意這里使用了function(){}匿名函數(shù)只做了一件事情,使用兩個(gè)參數(shù)param1,param2調(diào)用myCallBack方法。

  1. $.get('myhtmlpage.html'function(){  
  2.  myCallBack(param1, param2);  
  3. }); 

param1和param2是$get()方法獲取頁(yè)面完成后提供的參數(shù)。

原文:http://www.cnblogs.com/daitou0322/archive/2011/08/07/2130138.html

【編輯推薦】

  1. jQuery性能優(yōu)化
  2. jQuery設(shè)計(jì)思想
  3. 7月20款最新且極具創(chuàng)意的jQuery插件(附下載)
  4. jQuery實(shí)現(xiàn)仿百度搜索時(shí)的下拉列表
  5. 教你開發(fā)一款極為簡(jiǎn)單實(shí)用的jQuery圖表插件
責(zé)任編輯:陳貽新 來(lái)源: KangPeng的博客
相關(guān)推薦

2021-05-10 17:20:55

AIOps開發(fā)人員人工智能

2024-09-06 17:55:27

Springboot開發(fā)

2023-03-06 00:27:02

Kubernetesscheduler系統(tǒng)

2021-08-03 14:29:30

ARPANET互聯(lián)網(wǎng)協(xié)議TCP

2023-04-18 14:53:48

2023-04-18 15:09:50

2010-08-02 16:56:03

ICMP協(xié)議

2022-08-12 07:00:00

NFC安全性RFID

2020-09-11 08:41:50

域名系統(tǒng)DNS網(wǎng)絡(luò)

2022-02-11 10:27:28

面部識(shí)別算法人工智能

2021-02-26 14:40:16

Kubernetes調(diào)度器

2023-03-21 10:20:20

2023-11-24 17:20:41

無(wú)人機(jī)無(wú)人駕駛飛行器

2024-08-19 00:25:00

2022-05-18 08:00:00

JavaScriptFetch數(shù)據(jù)

2022-08-08 08:00:00

人工智能機(jī)器學(xué)習(xí)計(jì)算機(jī)應(yīng)用

2024-02-22 08:00:00

SoraOpenAI

2017-11-17 09:13:31

Java注解

2022-09-16 00:11:45

PyTorch神經(jīng)網(wǎng)絡(luò)存儲(chǔ)

2023-05-17 15:36:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)