我正在使用 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/