如何在jquery中关闭弹出窗口

时间:2013-09-30 06:38:57

标签: jquery jquery-ui-dialog

如何根据条件关闭打开的弹出窗口。

它看起来很奇怪,但我要求基于某些条件,如果它成为真正的弹出窗口应该自动关闭,怎么做?

我在.dialog("close")事件中返回了document.ready,但它无效。有什么想法吗?

更新

我发现问题是实际上弹出窗口已关闭但是在完成准备好的事件之后它再次打开。有什么帮助吗?

7 个答案:

答案 0 :(得分:2)

这是一篇旧帖子,但是由于其他人遇到了这个问题,我遇到了类似的问题,jquery弹出窗口甚至无法关闭

$("#popup").dialog('close');

根据同事的代码改编的解决方案是在脚本部分的顶部有一个控制变量,当我打开弹出窗口时将其设置为1,当我希望它关闭时将其重置为0。另外,我从pageLoad(仍在javascript中)的html中删除弹出窗口,如下所示:

<script>
<code>
  var $l = jQuery.noConflict();
  var cntDialog = 0;
</code>

function pageLoad(sender,args) {
  $l(function () {
    if (cntDialog == 0) {
      RemoveDialog();
    });
  }

function initializeDialog(){
  $l("#popup").dialog({
    ...
    close: (function (sender,event) {
    RemoveDialog();
  })
});}

function RemoveDialog() {
  cntDialog = 0;
  $l("#popup").remove();
}
</script>

希望有所帮助

答案 1 :(得分:2)

如果它是引导模式,则可以使用下面的代码显示/隐藏弹出窗口。

$('#modal').modal('toggle');  //To show and hide

if(condition) {
    $('#modal').modal('hide');  //To hide
}

$('#modal').modal('show');  //To show

答案 2 :(得分:1)

其中一个简单的解决方案可能是$('#dialog-close-btn')。触发器('click')指向对话框关闭按钮。

答案 3 :(得分:0)

if (condition){    
   $('dialog id').dialog('close');    
}

答案 4 :(得分:0)

这应该在弹出窗口中完成:

<script>
    $(function() {
        if (condition) {
            window.close();
        }
    });
</script>

答案 5 :(得分:0)

您必须在服务器端脚本中添加一些标记,并且必须在客户端设置事件侦听器以关闭弹出窗口关闭。

意味着您必须设置如下内容:

parent.postMessage("CLOSE","*");  

在服务器上。

并将侦听器客户端设置为:

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

//从子窗口收听消息

 eventer(messageEvent,function(e) {
    var key = e.message ? "message" : "data";
        var data = e[key];
    },false);

我没有时间检查这个。希望这能帮助你。

或者我浏览以下网址:

https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

http://nyamsprod.com/blog/2012/introduction-to-window-postmessage/

http://benalman.com/code/projects/jquery-postmessage/examples/iframe/

我的代码来自网址:

Html5 - Cross Browser Iframe postmessage - child to parent?

您可以在侦听器中添加dilogue密码。

由于

答案 6 :(得分:0)

$('.my-modal').hide()将关闭该活动模式。