我正在尝试构建一个 jquery 函数,该函数构建一系列按钮并将它们绑定到具有不同参数值的回调。我遇到的问题是,无论单击哪个按钮,始终使用最后一个按钮 [] 值“取消”的参数值调用回调。
var buttons = ["OK|ok", "Cancel|cancel"];
buildButtons(buttons, function(response){
alert(response);
});
function buildButtons(buttons){
for (i = 0; i < buttons.length; i++){
var btnTitle = buttons[i].split("|")[0];
var btnName = buttons[i].split("|")[1].toString();
var btnElem = $('<button/>', {
type: 'button',
id: 'btn_' + btnName,
html: btnTitle,
})
$(btnElem).on('click', function () {
//..some other code
fnResponse(btnName); //<<------- Issue Should return 'ok' or 'cancel'
});
}
}
问题是回调总是使用最后一个元素的值 [btnName] 调用。无论单击哪个按钮。