javascript - 对话框中的长度错误

标签 javascript jquery jquery-ui events dialog

我正在使用 jquery,我正在尝试监听关闭对话框后有多少打开的对话框,但是我得到了打开的对话框的数量。 例如:如果我有 4 个,我关闭一个,当我期望得到 3 时,它返回 4,最后,当我只有 1 个打开时,它返回 2,最后,当我关闭最后一个时,它返回 1。

我做得对吗?我尝试查看文档并尝试寻找类似 afterClose 的内容,但没有。

$( ".test" ).dialog({
          autoOpen: false,
          height:   "auto",
          width:    "auto",
          modal:    true,
          close:    function(e){
              $(this).destroy();
              // This returns wrong lenght
              console.log($('.test').length);
              if($('.test').length === 1) {
                        console.log($('.test a').text());
              }
          }  
});

最佳答案

你是如何得到这些数字的?除非你正在破坏调用

的对话框

$('.test').length

总是会返回 dom 上测试类的数量。您是否使用 .remove() 或其他方法来删除对话框?需要更多信息。

当您关闭对话框时,它不会将其从 DOM 中删除。它只是隐藏了它,你可以在页面底部看到隐藏的html。使用多个对话框的正确方法是使用 instances对话框。但这件事很复杂。发布更多您的代码,特别是您如何设置 html 以及如果您知道如何删除对话框。

另外(因为我还不能评论),关闭事件在窗口关闭时但在窗口隐藏之前触发,这允许您在两个地方取消关闭事件,beforeClose(通常用于某些验证)和 close(也许你在那里做一些物体或其他东西)。

关于javascript - 对话框中的长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571196/

相关文章:

javascript - 如何修复 <LI> 中用户可以使用大写字母或小写字母的搜索?

jquery - 在 droppable 事件发生时将 jQuery 可拖动对象恢复到其原始容器

javascript - 我无法从本地文件运行 facebook js api?

javascript - 在 JSON 中使用模板文字 (discord.js)

javascript - 从数据表中搜索

jQuery UI Slider(以编程方式设置)

javascript - RequireJS 影响嵌入式 jquery-ui 小部件

javascript - 如何在 React Native 中导航

javascript - 分别编辑每个div

jquery - 单击列表项后如何关闭侧边菜单?