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

jQuery 1.4十大新特性解讀及代碼示例

開發(fā) 前端
今年1月51CTO曾為您報道過jQuery 1.4發(fā)布的消息,在這個版本中,jQuery有相當多的改進與功能更新,包括將屬性傳遞給jQurey、多事件綁定以及一些元素處理的功能,我們將通過講解和示例代碼的方式向您詳細介紹。

今年1月51CTO曾為您報道過jQuery 1.4發(fā)布的消息,在這個版本中,jQuery有相當多的改進與功能更新,它不僅包含了很多新的特性,還改進了很多功能, 更在性能優(yōu)化方面下了很大功夫, 本文將對這些新的特性和增強的部分進行討論,希望能對你有所幫助。

jQuery 1.4版本下載地址: http://code.jquery.com/jquery-1.4.js

下面我們通過講解和示例代碼來詳細介紹jQurey 1.4版本中你應(yīng)該知道并使用的十大新特性。

1. 傳遞屬性給jQuery

在之前的版本中jQuery就通過"attr”方法支持了添加屬性到元素集合中,"attr”方法不僅可以傳遞屬性名和值,也可以傳遞包含有多個屬性的對象集合。在jQurey 1.4中,除了可以創(chuàng)建新的對象,現(xiàn)在它更能將屬性對象作為參數(shù)傳遞給jQuery函數(shù)或?qū)ο笞陨怼H缒憧梢詣?chuàng)建一個含有多個屬性的鏈接元素。

  1. jQuery('<a></a>', {        
  2.       id: 'gid',        
  3.       href: 'http://www.google.com',        
  4.       title: 'google非和諧版',        
  5.       rel: 'external',        
  6.       text: '進入<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=Google"
     mce_href="tag.php?name=Google">Google</SPAN>!'
           
  7.   });     

你可能會注意到"text”屬性并且猜測它是干嗎的,因為a標簽是沒有"text”屬性的。呵呵,當你傳遞某些屬性時,jquery 1.4同樣會檢查并使用它自己的方法。因此上面的"text”屬性可以讓jQuery調(diào)用它的".text()”方法并將"進入Google!“作為它的唯一參數(shù)。

這里給出一個更好的例子:

  1. jQuery('<div/>', {        
  2.       id: 'foo',        
  3.       css: {        
  4.           fontWeight: 700,        
  5.           color: 'green'       
  6.       },        
  7.       click: function(){        
  8.           alert('Foo被點擊過!');        
  9.       }        
  10.   });     

"id”屬性是作為一個普通屬性被添加的。但"css”和"click”屬性則對應(yīng)特定的jQuery方法。上面的代碼在1.4之前一種寫法如下:

  1. jQuery('<div/>')        
  2.       .attr('id''foo')        
  3.       .css({        
  4.           fontWeight: 700,        
  5.           color: 'green'       
  6.       })        
  7.       .click(function(){        
  8.           alert('Foo被點擊過!');        
  9.       });      

2. 所有的東西都可以"until“了

jQuery 1.4新增了三個對DOM操作的方法,他們分別是"nextUntil",  "prevUntil"  和  "parentsUntil"。 這些方法會按照某個順序去遍歷DOM對象直到滿足指定的篩選條件。假設(shè)我們有一個水果列表:

  1. <ul>       
  2.     <li>蘋果</li>       
  3.     <li>香蕉</li>       
  4.     <li>葡萄</li>       
  5.     <li>草莓</li>       
  6.     <li>例子</li>       
  7.     <li>桃子</li>       
  8. </ul>      

如果你想選擇所有在"Apple”和"Strawberry”之間的元素。代碼可以這樣寫:

  1. jQuery('ul li:contains(蘋果)').nextUntil(':contains(梨子)');   // 得到 香蕉,葡萄,草莓    
  2.  

3. 綁定多個事件

與通過jquery鏈綁定多個方法到一起相比,現(xiàn)在你可以通過一次調(diào)用來綁定所有這些事件,如:

  1. jQuery('#foo).bind({        
  2.       click: function() {        
  3.           // 具體代碼        
  4.      },        
  5.       mouseover: function() {        
  6.           // 具體代碼        
  7.     },        
  8.       mouseout: function() {        
  9.           // 具體代碼        
  10.      }        
  11.   })        

你也可以通過 ".one()"方法操作。

4、檢查元素是否擁有某對象

通過".has()”方法,jQuery 1.4使得檢查一個元素(或者集合)是不是有某對象變得相當簡單。從程序角度看,它和jQuery的selector過濾器":has()”是一樣的。該方法會返回在當前集合中所有包含有至少一個符合條件的元素數(shù)組。

  1. jQuery('div').has('ul');      

上面方法會返回所有包含有UL元素的DIV元素數(shù)組。在這種情況下,你可能會更傾向于簡單使用選擇器的過濾器(":has()"), 但當你需要通過代碼過濾一個數(shù)組的時候,該方法仍會很有用。

jQuery 1.4同樣在jQuery命名空間下添加了新的"contains"函數(shù)。這是一個低級的函數(shù),它接受兩個DOM節(jié)點作為參數(shù)。它會返回一個布爾值來表示后面一個元素是否在前面一個元素中存在。如:

  1. jQuery.contains(document.documentElement, document.body);        
  2. // 返回true - <body>在<html>存在    

5、去掉元素的包裝

".warp()”已經(jīng)在jQuery中有段日子了,現(xiàn)在跟它對應(yīng)的".unwrap()”方法也被加進到1.4中了。這個方法剛好跟warp()方法相反。假設(shè)有下面的DOM結(jié)構(gòu):

  1. <div>        
  2.     <p>Foo</p>        
  3. </div>   

我們可以用下面的函數(shù)去掉段落元素的外層:

  1. jQuery('p').unwrap();     

最終的DOM結(jié)構(gòu)如下:

  1. <p>Foo</p>   

注意,這個方法處理比較簡單,它會移掉任何元素的父節(jié)點。#p#

6、detach() vs remove()

新的".detach()”方法允許你從DOM中移掉元素,這跟".remove()”很像。但與".remove()”有本質(zhì)不同的是"detach()”不會將jQuery賦給該元素的數(shù)據(jù)也給注銷掉。這包含通過".data()”和其他任意的通過jQuery的事件系統(tǒng)添加的事件等數(shù)據(jù)。

  1. var foo = jQuery('#foo');        
  2. // 綁定一個重要的事件        
  3. foo.click(function(){        
  4.     alert('Foo!');        
  5. });        
  6. foo.detach();        
  7. // 從 DOM中移除事件        
  8. // … 其他操作        
  9. foo.appendTo('body');        
  10.  // 將元素重新加入到 DOMfoo.click();        
  11.  // 彈出 "Foo!"      

7、index(…) 加強

jQuery 1.4中我們有兩種使用".index()”方法的方式。首先,你可以僅僅將一個元素自身作為參數(shù),這樣你可以得到該元素在當前集合中所處的索引位置值。
如果不設(shè)置參數(shù)的話,現(xiàn)在會返回該元素的兄弟節(jié)點。因此,假設(shè)有下面的DOM結(jié)構(gòu):

  1. <ul>        
  2.  <li>蘋果</li>        
  3.  <li>香蕉</li>        
  4.  <li>葡萄</li>        
  5.  <li>草莓</li>        
  6.  <li>例子</li>        
  7.  <li>桃子</li>        
  8.  </ul>      

一個節(jié)點被點擊的時候,你如果想找到在所有的節(jié)點集合中被單擊的節(jié)點的位置,你可以這樣寫:

  1. jQuery('li').click(function(){        
  2.     alert( jQuery(this).index() );        
  3. });      

jQuery 1.4還允許你指定一個選擇器作為".index()”的第一個參數(shù),這樣它會返回該元素在選擇器中產(chǎn)生的元素集合中的位置。最后需要注意的是,如果該元素在集合中存在的話,該函數(shù)會返回一個其位置的整數(shù),如果不存在,則返回-1。

8、對象類型判斷

jQuery 1.4添加了兩個新的方法(直接放到了jQuery命名空間下面)以方便我們來判斷當前處理的對象的類型。

首先是方法"isEmptyObject”,顧名思義,這個函數(shù)會返回一個布爾值來表明傳遞的對象是不是空對象(缺乏屬性--無論是對象自身還是繼續(xù)的對象)。其次是方法"isPlainObject”,它會返回一個布爾值來表明操作的對象是否是一個簡單的js對象(指通過"{ }"或者"new Object”創(chuàng)建的對象)。

  1. jQuery.isEmptyObject({}); // true        
  2. jQuery.isEmptyObject({foo:1}); // false        
  3. jQuery.isPlainObject({}); // true        
  4. jQuery.isPlainObject(window); // false         
  5. jQuery.isPlainObject(jQuery()); // false      

 9、Closest(…) 增強

jQuery的".closest()”方法現(xiàn)在可以接受一組選擇器了。如果開發(fā)人員想遍歷一個元素的祖先,并在其中查找離其最近的那些符合某些特征的節(jié)點的時候,這會很有用。

另外,該函數(shù)現(xiàn)在也接受將上下文作為第二參數(shù)了。這意味著你現(xiàn)在可以控制你想在DOM中遍歷的元素范圍了。雖然這兩種情況我們一般很少用到,不過它們在jQuery內(nèi)部被很好的使用。

10、 新的事件focusIn和focusOut

為了委托"focus”和"blur”事件你需要這些新的事件,它們是"focusin”和"focusout”。這些新的事件將允許你在一個元素或其子元素獲取焦點的時候進行相應(yīng)操作。

  1. jQuery('form')        
  2.     .focusin(function(){        
  3.         jQuery(this).addClass('focused');        
  4.     });        
  5.     .focusout(function(){        
  6.         jQuery(this).removeClass('focused');        
  7.     });      

同時應(yīng)該注意的是這兩個事件都不是按冒泡順序傳遞,它們將按捕獲順序觸發(fā)。這意味著最外層的(也即祖先)元素會在實際節(jié)點事件觸發(fā)前被觸發(fā)。

除了以上提到的十點,jQuery 1.4還有很多有用的改進和增強,更多特性的解析及示例可以參考jQuery 1.4的官方文檔。

 

【編輯推薦】

  1. 編程人員對于JQuery框架性能評論說明
  2. 學習jQuery必須知道的幾種常用方法
  3. jQuery中this與$(this)的區(qū)別
  4. 使用jQuery 簡化Ajax開發(fā)

 

責任編輯:佚名 來源: Ethan Woo的博客
相關(guān)推薦

2010-08-02 14:23:56

FlexBuilder

2010-05-25 08:34:10

C# 4.0

2010-08-05 15:33:01

FlexBuilder

2013-06-27 09:35:26

Windows 8.1預(yù)覽版特性

2013-10-28 14:15:12

2010-03-31 08:35:17

Visual Basi

2011-05-30 09:07:44

MangoWindows Pho

2013-06-27 13:01:58

Windows 8.1

2010-01-20 10:02:52

SQL Server2

2013-10-18 10:18:52

Windows 8.1微軟

2010-06-24 15:03:37

MSN微軟

2011-10-10 13:24:49

2011-07-05 09:05:40

新特性iOS 5.0

2013-06-20 10:10:05

Win Sever 2 Hyper-V

2015-09-16 09:45:00

2014-01-08 16:36:28

VDI

2022-08-16 14:27:56

Java開發(fā)編程

2022-03-29 14:07:08

物聯(lián)網(wǎng)AIoT物聯(lián)網(wǎng)設(shè)備

2023-07-26 10:44:42

物聯(lián)網(wǎng)IOT

2024-01-31 16:52:51

點贊
收藏

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