2010-11-28 78 views
0

用戶名爲「mu」,爲我提供了我非常喜歡的以下答案。 但是,我在這裏有一些問題,我希望任何人都可以幫助我。

給出的以下內容:

function() { 
     var $this = $(this); 
     $this.data('orig', $this.html()).html('<a href="blabla.org">go here</a>'); 
    }, 
    function() { 
     var $this = $(this); 
     $this.html($this.data('orig')).removeData('orig'); 
    } 

1) 爲什麼我們的需要,它有什麼作用: 變量$此= $(本) - 爲什麼我們不能用$(這個)到處都是?

2)爲什麼我們需要'orig'這個東西呢?

請:)提供儘可能多的細節,真的,我對這一切都很新穎。

非常感謝提前, MEM

回答

3

沒有必要使用$this代替$(this),但它會更快。您正在撥打電話$(this)一次,並將結果存儲在變量中,而不是一遍又一遍地進行呼叫。

注意$(this)是對函數$調用使用的this作爲參數的值,而$this是一個變量的只是名字。函數調用返回一個jQuery對象,其中包含this引用的一個元素的列表,所以這就是存儲在變量中的內容。

字符串'orig'是您要存儲的數據段的標識符。您使用data方法存儲的每條信息都需要一個標識符。

+0

另外,jQuery有非常不錯的API文檔:[jQuery API](http://api.jquery.com) – 2010-11-28 14:53:50

+1

@krof:我完全同意。我真的很討厭那些文檔。很多信息...是的......但是寫作和解釋......以及信息架構在那裏的安裝方式...... arrhg。仍然,我必須閱讀它,當然更經常。舉個例子:http://api.jquery.com/jQuery.data/(我不明白爲什麼我需要兩次幾乎相同的信息)。乾杯。 – MEM 2010-11-28 14:58:53

1

你可以在整個地方使用$(this),但是在將元素轉換爲jQuery對象時總會有開銷,所以如果你知道你將要多次使用jQuery對象,而不是在鏈中,那麼你應該把它作爲一個變量來存儲,這樣你就不會每次都在jQuery轉換中產生開銷。

原始部分只存儲節點的原始內容,以便它在完成後可以返回到原始狀態。類似於將其存儲在變量中,但您不必擔心範圍。

2

我假設你使用的是jQuery。

var $this=$(this) 

只是把jQuery函數的值到一個變量(稱爲$本),保存爲它不調用函數後使用時,爲了獲得價值一點點時間。

jQuery對象使用「data」屬性來保存數據。這是一個關鍵/類型的財產。所以一條線如

$(this).data('orig', whatever); 

在data屬性中創建一個名爲「orig」的關鍵字,並將值「whatever」放入其中。

相關問題