【问题标题】:jQuery-UI Dialog only showing last iteration of the for loop [duplicate]jQuery-UI 对话框仅显示 for 循环的最后一次迭代 [重复]
【发布时间】: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');
            }
        });
    };

任何帮助找到问题,可能真的很愚蠢

【问题讨论】:

  • 我建议使用回调。每次迭代后,您都可以调用一个节目,并在该对话框回调中进行更高级别的迭代。

标签: javascript php jquery jquery-ui dialog


【解决方案1】:

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

【讨论】:

  • 干杯伙伴,这帮助我解决了问题
猜你喜欢
  • 2020-06-30
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2018-12-30
相关资源
最近更新 更多