[英]Getting wrong length on dialog
我正在使用jquery,正在尝试关闭对话框后监听打开的位置,但是打开的位置却有多少。 例如:如果我有4个并且关闭一个,则当我希望得到3时返回4;最后,当我只有1个打开时,它将返回2;最后,当我关闭最后一个时返回1。
我做对了吗? 我尝试查看文档,然后尝试查找afterAfter之类的东西,但没有。
$( ".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。 使用多个对话框的正确方法是使用对话框的实例 。 但是那件事很复杂。 发布更多代码,特别是如何设置html以及是否删除对话框。
另外(因为我还不能评论),关闭事件在关闭窗口时触发,但是在隐藏窗口之前,这使您有两个地方可以取消关闭事件:closeClose(通常用于验证)和close(也许在您所在的位置)做一些物体之类的东西)。
尝试更改jQuery
选择器以搜索可见项:
$( ".test" ).dialog({
autoOpen: false,
height: "auto",
width: "auto",
modal: true,
close: function(e){
// This returns wrong lenght
console.log($('.test:visible').length);
if($('.test:visible').length === 1) {
console.log($('.test a').text());
}
}
});
$( ".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());
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.