javascript - 多个元素上的动态绑定(bind)处理程序将仅调用最后一个绑定(bind)函数

标签 javascript jquery

http://jsfiddle.net/7CV88/8/

在此片段中,我尝试将更改绑定(bind)到 #r(Nth)e <input>元素来更改 #r(N+1th)s 的内容<input>元素。但是当我改变任何第N <input>元素,显示的消息始终为“#r(last N)e Change handler”

for(var i = 1; i < numRanges; i++){
    $('#r'+i+'e').change(function(){
        $('#messages').html('#r'+i+'e change handler');
        $('#r'+(i+1)+'s').val($('#r'+i+'e').val());
    });
}

最佳答案

您应该使用所谓的事件数据i的值传递到onchange事件中处理程序:

for(var i = 1; i < numRanges; i++){
  $('#r'+i+'e').change(i, function(e){
     $('#messages').html('#r'+e.data+'e change handler');
     $('#r'+(e.data+1)+'s').val($('#r'+e.data+'e').val());
  });
}

Updated Demo.

注意:这只是直接回答您提出的问题,我知道您的代码很困惑,修复它不是主要的事情做。

关于javascript - 多个元素上的动态绑定(bind)处理程序将仅调用最后一个绑定(bind)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23833799/

相关文章:

javascript - 无法从 Chrome 控制台执行 Javascript

javascript - 访问 session 值

javascript - 提示框重新创建自身,直到输入正确的字段

jQuery .attr() 似乎区分大小写

javascript - jQuery Infinite Scroll 的加载过早触发

javascript - 如何在 ag-grid 的事件方法中使用 javascript 默认事件对象

javascript - 如何遍历 document.body

javascript - 如何使用 jQuery 在键盘上为 Div 列表启用箭头导航

javascript - Node 服务器接收文件上传作为字符串 : '[object ArrayBuffer]'

javascript - 我可以在我的网络应用程序中禁用浏览器刷新吗?