【发布时间】:2014-01-24 02:17:13
【问题描述】:
我将 onclick 事件附加到我动态创建的元素中。我正在使用下面的代码,这只是重要的部分。
Test.prototype.Show= function (contents) {
for (i = 0; i <= contents.length - 1; i++) {
var menulink = document.createElement('a');
menulink.href = "javascript:;";
menulink.onclick = function () { return that.ClickContent.apply(that, [contents[i]]); };
}
}
首先它说它是未定义的。然后我更改并添加:
var content = content[i];
menulink.onclick = function () { return that.ClickContent.apply(that, [content]); };
现在发生的事情是它总是将最后一个元素附加到所有 onclick 事件(也称为元素)。我在这里做错了什么?
【问题讨论】:
-
确实,谢谢!有了这个标题,它就不太可能被发现,但它很有用:)
-
另请注意,您的代码正在成为The Horror of Implicit Globals 的牺牲品:您需要声明
i。 -
你是对的,谢谢!
-
可以使用
i <= contents.length - 1而不是i < contents.length
标签: javascript object onclick apply