请帮我解决这个问题:
这组代码中有一些未确定的迭代次数:
var c = 1;
for(c=1; c<x; c++){
$('#'+l_id+'_'+c).on("keypress", function(f){
com_guide_add_li((c+1), $(this).parent().parent().attr('id'), f);
})
}
问题在于,当调用事件时,(c + 1)是最后一次迭代的值+ 1,而不是在此代码运行的迭代期间某处的值。
如何确保(c + 1)的原始值保留在函数调用中,即设置事件调用的迭代运行时的值是什么?
由于
*对不起长标题
答案 0 :(得分:0)
我认为这应该有效,早期的约束应该照顾它。
var c = 1;
for(c=1; c<x; c++){¡
var tmp_var = c;
$('#'+l_id+'_'+c).on("keypress", function(f){
com_gude_add_li((tmp_var+1), $(this).parent().parent().attr('id'), f);
})
}
如果有帮助,请告诉我。
选项2
由于您使用的是jquery,因此可以使用data
方法(更多内容来阅读here):
var c = 1;
for(c=1; c<x; c++){¡
$('#'+l_id+'_'+c).data("c", c);
$('#'+l_id+'_'+c).on("keypress", function(f){
com_gude_add_li(($(this).data("c") + 1), $(this).parent().parent().attr('id'), f);
})
}