保持参数值为循环分配事件监听器

时间:2017-01-23 00:09:21

标签: javascript while-loop scope addeventlistener

我有一个uint64_t both = ((uint64_t)ReverseBits(left) << 32) | (uint64_t)ReverseBits(right); data[0] = (both >> 24 & 0xff); data[1] = (both >> 16) & 0xff; data[2] = (both >> 8) & 0xff; data[3] = both & 0xff; data[4] = (both >> 56); data[5] = (both >> 48) & 0xff; data[6] = (both >> 40) & 0xff; data[7] = (both >> 32) & 0xff; 循环,它将事件监听器(while)附加到SelectRua()

我需要div方法中的div内部文本,因为SelectRua()是调用事件监听器的,所以这很好用:

div

就像这样,我点击它时可以轻松访问$('#div' + i).on("click", function () { SelectRua(this) }) 属性。

但是现在我想分配一个在div点击时不再可用的对象(变量):

正如我在adding 'click' event listeners in loopJavaScript closure inside loops – simple practical example中看到的那样,经过多次尝试,我能够获得此代码:

div

单击while (morada[i]) { $('#div' + i).on("click", function (morada) { return function (morada) { SelectRua(morada[i]) } }(morada)) } 时,会调用div方法,但参数为SelectRua(),尽管我在此示例中将其放在任何位置。

所以我的问题是,当事件被触发时,如何将参数的值设置为事件监听器时使用该参数的值?

1 个答案:

答案 0 :(得分:1)

click事件替换为:

$('#div' + i).bind("click",morada[i],SelectRua)