javascript - TypeError : this. 重新加载不是一个函数

标签 javascript jquery oop

我的代码:

Box = (function() {
  function Box(options) {
    this.id = options.id;
    $('#box-reload-' + this.id).click(function() {
      this.reload();
    });
  }

  Box.prototype.reload = function() {
    alert('test');
  };

  return Box;
})();
b = new Box({'id': '0'})

点击事件已正确注册,但是当我点击重新加载按钮时,出现此错误: 类型错误:this.reload不是一个函数

如何修复此错误?

最佳答案

click 处理程序中的

this 引用元素 #box-reload-...,因此请使用 _this 变量作为对正确范围的引用,例如

Box = (function() {
  function Box(options) {
    var _this = this;
    this.id = options.id;
    $('#box-reload-' + this.id).click(function() {
      _this.reload();
    });
  }

关于javascript - TypeError : this. 重新加载不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264229/

相关文章:

PHP 对象 - 什么是对象?

javascript - 如何在没有全局变量的情况下从html中的不同事件调用类方法

javascript - 对象不是函数 - Jquery/JavaScript

javascript - Backbone 无法使用 "this"?

php - 在 session 中存储 PHP 对象?

c++ - 是否可以在成员例程中使用 const_cast 来避免重复代码

javascript - Twitter Bootstrap 工具提示的垂直偏移

javascript - 在js文件中加载html文件

javascript - jQuery 动画问题?

javascript - 未捕获的 TypeError : jQuery(. ..).tablesorter 不是函数