【问题标题】:Keep parameter value assigning Event Listener on loop保持参数值在循环中分配事件侦听器
【发布时间】:2017-01-27 09:26:52
【问题描述】:

我有一个 while 循环,它将事件侦听器 (SelectRua()) 附加到 div

我需要 SelectRua() 方法中的 div 内部文本,并且由于 div 是调用事件侦听器的东西,所以它工作正常:

$('#div' + i).on("click", function () { SelectRua(this) })

就像这样,当我点击 div 属性时,我很容易访问它。

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

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

while (morada[i]) {
$('#div' + i).on("click", function (morada) {
    return function (morada) { SelectRua(morada[i]) }
    }(morada))
}

点击div时,会调用SelectRua()方法,但参数是undefined,虽然我在这个例子中到处都是。

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

【问题讨论】:

    标签: javascript while-loop scope addeventlistener


    【解决方案1】:

    click 事件替换为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-01
      • 2012-02-13
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多