Javascript onchange选择绑定问题

时间:2013-02-25 22:13:54

标签: javascript javascript-events

我似乎无法在谷歌中选择正确的关键字来找到这个答案......

我在类中创建了一系列函数来处理选择框更改。这是一个关于javascript如何布局的一个非常简单的例子

function example(n) {
  this.name = n;
}

example.prototype.setChange(i) {
  var c = document.getElementById('test' + i );
  for ( var x = 0; x < 10; x++
    c.options[0] = new Option(x, x);
  c.change = this.doChange;
}

example.prototype.doChange() {
  alert(this.name);
}

一切正常,直到我尝试访问'this'。调用doChange时,这是实际的select html对象而不是类。因为这是一个事件,我不能使用.call(this)来强制执行正确的绑定。

1 个答案:

答案 0 :(得分:1)

您通过执行this来放弃this.doChange。使用像

这样的东西
function example(n) {
 this.name = n;

  var self = this;
  this.doChange = function () {
    alert(self.name);
 }
}