2015-05-26 79 views
2

所以我有類似jQuery的「本」裏面點擊

this.editElement = $("<a href='#'>Edit</a>").click(function() { 
    this.startEdit(); 
}); 

但是這需要「本」是editElement本身,而不是父對象。

我已經成功地得到它通過設置點擊,然後使用父夠了之前作出

var parent = this; 

工作。

這是解決問題的正確方法嗎?

+3

是的,這是一種常見的模式。 –

+0

此代碼看起來很複雜;爲什麼不寫簡單的代碼呢? – frenchie

回答

0

這是一個非常正確的方式,是的,這很常見。

您也在命名parent時採取了正確的決定,而不是我們經常看到的語義較少的_this

其他的解決方案:

  • bind回調到外部this
  • 使用jQuery的ondata參數傳遞父
  • 動態地從回調尋父

但最常提到的是一個保存在外部閉合中的變量確實是最乾淨的解決方案。

+0

請您提供一些簡短的例子嗎? – Dropout