如何在不覆盖的情况下连续打开对话框

Posted

技术标签:

【中文标题】如何在不覆盖的情况下连续打开对话框【英文标题】:How to open the dialog box continuously without overwriting 【发布时间】:2016-11-17 05:54:22 【问题描述】:

我试图在 for 循环中显示对话框,但始终显示最后一个。它正在覆盖现有的。

有没有其他方法可以一一显示对话框?例如,for 循环大小为 2。在迭代中,第一个被打开。如果我关闭第一个,那么第二个就会这样打开。

以下是我正在使用的代码 sn-p:

$(document).ready(function() 


  $("#warningMessage").dialog(
    dialogClass: "no-close",
    autoOpen: false,
    height: 400,
    width: 400,
    modal: true,
    buttons: 
      "YES": function() 
        var me = jQuery(this);
        me.dialog("close");
      ,
      "NO": function() 
        var me = jQuery(this);
        me.dialog("close");
      ,
    
  );
  var sample = ["AAAA", "BBBB"];
  for (i in sample) 
    $("#warningMessage").html(sample[i]);
    $("#warningMessage").dialog("open");
  


);
<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script src="https://code.jquery.com/ui/1.9.2/jquery-ui.min.js" integrity="sha256-eEa1kEtgK9ZL6h60VXwDsJ2rxYCwfxi40VZ9E0XwoEA=" crossorigin="anonymous"></script>
  <link rel="stylesheet" type="text/css" href="https://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
</head>

<body>
  <div id="warningMessage">
  </div>
</body>

</html>

HTML:

<div id="warningMessage">
</div>

javascript

$(document).ready(function() 
  $("#warningMessage").dialog(
    dialogClass: "no-close",
    autoOpen: false,
    height: 400,
    width: 400,
    modal: true,
    buttons: 
    
        "YES" : function()
          var me = jQuery(this);
          me.dialog("close");
        ,
        "NO" : function()
          var me = jQuery(this);
          me.dialog("close");
        ,
    
  );
var sample = ["AAAA","BBBB"];
  for(i in sample)
    $("#warningMessage").html(sample[i]);
    $("#warningMessage").dialog("open");
  
);

提前致谢。

【问题讨论】:

请将所有相关代码包含在 OP 中 这段代码中只有一个对话框..您应该为此使用不同的框 @sherin Jose。我想根据 for 循环大小动态显示对话框 【参考方案1】:

你可以使用这样的队列:

$(document).ready(function() 

    var queue = [];

    $(".warningMessage").dialog(
        dialogClass: "no-close",
        autoOpen: false,
        height: 400,
        width: 400,
        modal: true,
        buttons: 
            "YES": function() 
                var me = jQuery(this);
                me.dialog("close");
            ,
            "NO": function() 
                var me = jQuery(this);
                me.dialog("close");
            ,
        
    ).on("dialogclose", function(event, ui) 
        if (queue.length)
            $(".warningMessage").html(queue.shift()).dialog("open");
    );
    var sample = ["AAAA", "BBBB"];
    for (i in sample) 
        queue.push(sample[i]);
    
    $(".warningMessage").html(queue.shift()).dialog("open");
);

演示: https://jsfiddle.net/iRbouh/dno04zpz/17/

【讨论】:

以上是关于如何在不覆盖的情况下连续打开对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何在不关闭先前活动的情况下从通知中打开对话框样式的活动?

如何在不确认的情况下强制 cp 覆盖

如何在不刷新页面的情况下“连续”更改背景颜色[重复]

如何在不覆盖的情况下向 Firebase Firestore 添加值?

如何在不覆盖当前内容的情况下写入文件? [复制]

如何在不覆盖 Go 中现有文件的情况下复制文件?