一連のボタンを作成し、それらを異なる引数値でコールバックにバインドする jquery 関数を作成しようとしています。私が抱えている問題は、どのボタンがクリックされても、コールバックが常に最後のbuttons[]値「キャンセル」の引数値で呼び出されることです。
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] で呼び出されることです。