jQuery-UI对话框仅显示for循环的最后一次迭代

时间:2018-09-04 09:48:52

标签: 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-" + i).dialog();
            if (dialog) {
                console.log('yay');
                console.log(dialog);
            } else {
                console.log('nay');
            }
        });
    };

找到问题的任何帮助,也许有些愚蠢

1 个答案:

答案 0 :(得分:2)

这是因为click会在将来的某个时候发生,届时循环已经完成了执行,并且i的值更新为最后一个值。您可以使用var

来代替let
相关问题