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

Posted

技术标签:

【中文标题】jQuery-UI 对话框仅显示 for 循环的最后一次迭代 [重复]【英文标题】:jQuery-UI Dialog only showing last iteration of the for loop [duplicate] 【发布时间】:2019-02-09 07:43:57 【问题描述】:

不知道我是不是瞎了,但每次我看这段代码时,逻辑都是有道理的。我正在尝试遍历此 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】:

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

【讨论】:

干杯伙伴,这帮助我解决了问题

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

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

jQuery-ui 对话框不显示在点击事件上

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

处理在多个 for 循环中声明的变量的最惯用方法是啥? [关闭]

初始化和打开 Jquery-ui 对话框

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