繁体   English   中英

对话框长度错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM