关闭按钮单击jquery模式弹出窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关闭按钮单击jquery模式弹出窗口相关的知识,希望对你有一定的参考价值。

我正在使用jquery模式弹出窗口打开一个页面(例如来自父页面,aspx,我正在打开子页面,b.aspx。)

以下是代码

<script type="text/javascript">
    $(function() {

        $("[id$='lnkbtn']").click(function() {
            var str = $(this).attr("details");
            var page = ('../b.aspx?no=' + str);
            var $dialog = $('<div></div>').html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>').dialog({ autoOpen: false, modal: true, height: 500, width: 900});
            $dialog.dialog('open');
        });
    });
</script>

当用户单击模态弹出窗口(I.E b.aspx)上的关闭按钮(x)时,我想刷新我的父页面。

我通过以下链接,但我没有得到预期的操作。

http://jsfiddle.net/XM2FH/

以下是根据我的要求修改的代码。

<script type="text/javascript">
    $(function() {
        $('#dialog').dialog({
            open: function() //runs every time this dialog is opened
            {
                //var $dialog = $(this);
                var page = ('../../a/bc.aspx');
                var $dialog = $('<div></div>').html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>').dialog({ autoOpen: false, modal: true, height: 650, width: 1000 });
                if (!$dialog.data('titleCloseBound')) {
                    $dialog
                    .data('titleCloseBound', true) //flag as already bound
                    .closest('div.ui-dialog') //traverse up to the outer dialog wrapper
                        .find('a.ui-dialog-titlebar-close') //search within it for the X
                            .bind('click', function(e) //bind it
                            {
                                alert('hi');
                                e.preventDefault();
                               __doPostBack('', '');
                            });
                }
            }
        });
    });
答案

http://api.jqueryui.com/dialog/#event-close

$('#dialog').dialog({
  close: function( event, ui ) {
    __doPostBack('', '');
  }
});

你的第二个代码是错误和误导的。这个:

$(function() {
    $("[id$='lnkbtn']").click(function() {
        var str = $(this).attr("details");
        var page = ('../b.aspx?no=' + str);
        var $dialog = $('<div></div>')
            .html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>')
            .dialog({ 
                modal: true,
                height: 500,
                width: 900,
                close:function(){
                    window.location.reload();//or your __doPostBack()
                }
            });
    });
});

以上是关于关闭按钮单击jquery模式弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

一旦按下相关按钮,JQuery 移动弹出窗口并不总是出现

无法在外部单击时关闭带有动态内容的引导弹出窗口 - jquery

在按钮单击 Elementor 时关闭模式

如何通过单击按钮关闭 jQuery fancybox

需要确定在 JQuery 移动弹出窗口中单击的按钮并据此执行操作

单击复选框并单击恢复按钮时如何打开Jquery对话框弹出窗口