【问题标题】:How to use addEventListener for this?如何为此使用 addEventListener?
【发布时间】:2012-04-28 01:59:15
【问题描述】:

我正在尝试向容器 div 中的子 div 添加事件侦听器。我在弄清楚如何正确执行此操作时遇到问题。到目前为止我的代码在这里:pastebin。监听器(点击)在第 35 行

【问题讨论】:

  • 听者?我想你的意思是听众

标签: javascript oop html addeventlistener


【解决方案1】:

您正在调用context 函数,而不是将其作为侦听器传递。我的意思是,这个:

divs[i].addEventLisenter('click', context(divs[i].id), true);

应该是:

divs[i].addEventLisenter('click', context, true);

还有这个:

function context(id) {
    console.log(id+' clicked');
}

应该是:

function context(evt) {
    console.log(this.id + ' clicked');
}

【讨论】:

  • 啊,有趣...虽然我找到了一种不同的方式来做我想做的事。 (即给容器div添加点击事件,获取子div的event.target.id。
  • @Charles,你所做的非常有用!如果您向容器动态添加新的子项,则单击侦听器也会为它们工作(与上面的传统方法不同)。它被称为“事件委托”。
【解决方案2】:

JavaScript 被解释,所以你应该把 docINIT 的定义移到它的使用之上。

【讨论】:

  • 不一定正确——解释与它无关。查看 JavaScript 变量提升。该函数可以在范围内的任何位置存在和定义。
  • tkone 是正确的,我一直在几个应用程序中使用 docINIT 的布局方法,从来没有问题。
猜你喜欢
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2011-02-22
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多