Javascript jQueryUI对话框只显示for循环的最后一次迭代
我不知道我是不是瞎了,但每次我看这段代码时,逻辑都是有道理的。我试图迭代这个for循环,并为每个迭代生成一个ID为#dialog-(I)的对话框,但它只显示最后一次200次迭代。代码如下:Javascript jQueryUI对话框只显示for循环的最后一次迭代,javascript,php,jquery,jquery-ui,dialog,Javascript,Php,Jquery,Jquery Ui,Dialog,我不知道我是不是瞎了,但每次我看这段代码时,逻辑都是有道理的。我试图迭代这个for循环,并为每个迭代生成一个ID为#dialog-(I)的对话框,但它只显示最后一次200次迭代。代码如下: var i; for(i=1;i<200;i++){ $("#dialog-" + i).hide(); $('#meetings_box-' + i).click(function() { var dialog = $("#dialog
var i;
for(i=1;i<200;i++){
$("#dialog-" + i).hide();
$('#meetings_box-' + i).click(function() {
var dialog = $("#dialog-" + i).dialog();
if (dialog) {
console.log('yay');
console.log(dialog);
} else {
console.log('nay');
}
});
};
vari;
对于(i=1;i这是因为click
将在将来某个时候发生,此时循环已经完成执行,i的值更新为最后一个值。您可以使用let
代替var,这是因为click
将在将来某个时候发生,此时循环已经读取y完成了它的执行,i的值被更新为最后一个值。您可以使用let
代替var
,我建议使用回调。在每次迭代后,您可以调用show,在该对话框回调中,您可以迭代更高的值。我建议使用回调。在每次迭代后,您可以调用show,然后继续对话回调你可以再重复一次。干杯,伙计,这帮我解决了问题。伙计,这帮我解决了问题