【问题标题】:jQuery "this" inside click [duplicate]jQuery“this”里面点击[重复]
【发布时间】:2015-08-07 16:38:48
【问题描述】:

所以我有类似的东西

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

然而,这将“this”作为 editElement 本身,而不是父对象。

我已经设法让它工作了

var parent = this;

在设置点击之前,然后使用足够的父级。

这是解决问题的正确方法吗?

【问题讨论】:

  • 是的,这是一种常见的模式。
  • 这段代码看起来很复杂;为什么不写看起来简单的代码呢?

标签: javascript jquery


【解决方案1】:

这是一个非常正确的方法,是的,而且很常见。

您也做出了正确的决定,将其命名为 parent,而不是我们经常看到的无语义的 _this

其他解决方案:

  • bind 回调到外部this
  • 使用 JQuery 的 ondata 参数来传递父项
  • 从回调中动态查找父对象

但最常见的方法是引用保存在外部闭包中的变量是最干净的解决方案。

【讨论】:

  • 能否请您提供一些简短的示例?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多