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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery-UI对话框仅显示for循环的最后一次迭代[duplicate]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

不知道我是否失明,但每次看这段代码时,逻辑都是有道理的。我试图遍历这个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');
            }
        });
    };

找到问题的任何帮助,可能是非常愚蠢的事情

答案

这是因为click将在未来的某个时间发生,到那时循环已经完成它的执行并且i的值更新为最后一个值。而不是var你可以使用let

以上是关于jQuery-UI对话框仅显示for循环的最后一次迭代[duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

For循环遍历数组仅显示最后一个值

无法在 v-for 循环中显示数组中的所有对象,仅显示最后一个对象

Python for 循环仅将最后一个列表作为值附加

jquery-ui 对话框不居中,关闭按钮奇怪的行为

jQuery-UI 自动完成不会显示在 jQuery-UI 对话框中

循环仅在添加跨度标记时显示数组中的最后一个字符串