下面的代码做了一些奇怪的事情。每当您单击对话框中的按钮时,您都会看到“test5”作为警报文本,而不是每个按钮分别显示“test0”、“test2”...“test4”。关于在循环中分配函数的一些事情不起作用。
var arrbuttons = [];
for (var i=0; i<5; i++) {
arrbuttons.push({click: function() { alert('test'+i);}, text:'test'+i});
}
jQuery("#requestdialog").dialog(
{
title: "test",
height: 250,
width: 500,
modal: true,
buttons: arrbuttons
}
最佳答案
都是关于范围和闭包的:
var arrbuttons = [];
for (var j=0; j<5; j++) {
(function(i) {
arrbuttons.push({click: function() { alert('test'+i);}, text:'test'+i});
})(j);
}
jQuery("#requestdialog").dialog(
{
title: "test",
height: 250,
width: 500,
modal: true,
buttons: arrbuttons
}
关于javascript - 你如何在循环中将 n 个按钮分配给 jQuery 对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815487/