2015-05-26 53 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