这是我的代码:
function test(e, f) {
for (var i = 0; i < e.length; i++) {
$('#clickme').append("<button id='op" + i + "'>" + e[i] + "</button>")
$('#op' + i).click(function () {
f[i]();
})
}
}
$(function postPunk() {
var func1 = function () {
alert('1');
}
var func2 = function () {
alert('2');
}
var func3 = function () {
alert('3');
}
test(['Option1', 'Option2', 'Option3'], [func1, func2, func3]);
})
Run Code Online (Sandbox Code Playgroud)
点击事件不会调用函数.如果我在点击事件中发出警报测试,它会触发.
任何想法为什么这不起作用?将函数数组作为参数传递似乎是一个问题.有一个更好的方法吗?
与此类型的所有其他问题一样,i不断变化.
相反,试试这个:
for( var i=0; i<e.length; i++) {
(function(i) {
// your code that depends on i not changing
})(i);
}
Run Code Online (Sandbox Code Playgroud)