您的位置 >>> 星想互聯 >>> 網站建設 >>> 域名空間
jQuery回溯處置的方案
點擊數:6979  發布時間2014-11-10 23:01:52

jQuery回溯處置的方案

在這一末節我將會統率你們熟習jQuery對DOM發展遍歷暗地里的工作機制,這樣可以或許在編寫代碼時居心識地防備一些無庸要的一再利用,從而提職代碼的效率。

關于jQuery對象的包裝

var $aaron = $("aaron");

經過對sizzle的闡發,我們大要得知Query抉擇器終極都是經由過程DOM接話柄現取值的, 可是經由jQuery處置后前往的不單僅只需DOM對象,而是一個包裝容器,前去jQuery對象:$aaron

在jQuery對象中有個prevObject對象,這個是干嗎用的呢?

假如你想曉得prevObject是干什么的,我們起首得先來大白一下jQuery對象棧,jQuery內部護衛著一個jQuery對象棧。每一個遍歷門徑都邑找到一組新元素(一個jQuery對象),日后jQuery會把這組元素推入到棧中。

而每一個jQuery對象都有三個屬性:context、selector和prevObject,此中的prevObject屬性就指向這個對象棧中的前一個對象,而經由過程這個屬性可能回溯到一開始的DOM元素集中。

為了利便理解,我們做幾個容易的測試:

下面有一個父元素ul,嵌套了一個li節點:

				
    parent
  • child

我們現給li綁定一個變亂,這個很容易,找到ul下面的li,綁定便可:

var aaron = $("#aaron");
    aaron.find('li').click(function(){
        alert(1);     //1
    })

此時我又想給父元素綁定一個事務,我們是不是又要在aaron上綁定一次事件呢?是的,下面代碼經由過程find措置后,此時的凹凸文是指向每一個li了,所以必需要從新援用aaron元素(li的父元素),日后再綁定click事情:

aaron.click(function(){
      alert(2);     //1
 })

這樣會不會很費事,以是jQuery引入一個容易的內部尋址的機制,概略回溯到疇前的Dom元素糾合,通過end()辦法可能完成:

aaron.find('li').click(function() {
        alert(1);
}).end().click(function() {
        alert(2);
})

jQuery為我們操作這個外部對象棧供應了兩個尤為有用的法子:

☑   .end()

☑   .andBack()

調用第一個方式只是容易地彈出一個對象(終究便是回到前一個jQuery對象)。第二個方式更成心思,調用它可在棧中回溯一個位子,往后把兩個位子上的元素集組合起來,并把這個新的、組合以后的元素集推入棧的上方。

利用這個DOM元素棧能夠削減反復的查問和遍歷的操縱,而減少反復獨霸也正是優化jQuery代碼堅守的關鍵所在。

來源:星想互聯
【上一篇】jQuery理念
【下一篇】css布局里的margin: auto;
日本高清成 人,A级高清毛片av无码,欧美成 人 免费在线播放-首页 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>