在此片段中,我尝试将更改绑定(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/