以下のようにjQuery UIダイアログにボタンを動的に設定しています。
arrButton = {};
var i = 0;
for (i = 0; i < dialog_buttons.length; i++) {
for (var key in dialog_buttons[i]) {
arrButton[key] = {
id: key,
text: dialog_buttons[i][key],
click: function () {
test($('#' + key));
}
};
}
}
function test(value) {
if (value.selector == "#confirm") {
confirmthis();
}
if (value.selector == "#cancel") {
cancelthis();
}
}
$("#" + div.id).dialog({
modal: true,
buttons: arrButton
});
ボタンをクリックすると、キーは反復の最後の値になります。キー確認とキャンセルがあるとしましょう。ボタンがクリックされると、キー パラメータはキャンセルになります。
そのため、ダイアログからボタンをクリックすると、どのボタンが押されたかを知りたいです。
上記の問題を再現するフィドルを見つけてください。
http://jsfiddle.net/DOmEl/qNGEw/11/
これにはネストされたダイアログが含まれており、最初のダイアログの [はい] または [いいえ] をクリックするとトリガーされます。2 番目のダイアログが表示されると、両方のボタンは無効になります。