【发布时间】:2011-10-22 05:32:21
【问题描述】:
我知道Javascript - Dynamically assign onclick event in the loop 这里有人问过类似的问题,但我觉得我有点困惑,无法添加评论。
我在数组“newdiv”中动态地制作了一系列 div。 我想创建一个 onClick 函数,它将 offsetHeight 扩展到 scrollHeight。
我正试图在我的 for 循环中这样做:
newdiv[i].onclick = function() {expandThis(message_id) };
在哪里
message_id = message_array[i][0];
(数组中的 id 列,在消息 'i' 处)
这个问题很熟悉——所有的onClicks 都引用了最后一个message_id。 有没有一种简单的方法可以让 newdiv[i] 的 onClick 引用 message_array[i][0]?
【问题讨论】:
-
似乎每个 div 都需要知道自己的身份。将任意属性添加到 DOM 后,是否可以将任意属性附加到 div,例如 newdiv[i].myid = i;然后在你的函数中引用这个属性:expandThis(this.myid);?
-
@Matt M:闭包方法要好得多;你只需要小心地把它关在正确的地方。
标签: javascript onclick