【问题标题】:close button click of jquery modal popupjquery模式弹出的关闭按钮单击
【发布时间】:2014-02-22 08:07:33
【问题描述】:

我正在使用 jquery modal poup 打开页面(来自父页面的示例,a.spx,iam 打开子页面,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('', '');
                            });
                }
            }
        });
    });

【问题讨论】:

    标签: jquery button click


    【解决方案1】:

    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()
                    }
                });
        });
    });
    

    【讨论】:

    • 原因是我在模态弹出窗口中打开网页
    • 我不知道究竟是什么 __doPostBack('', '');剂量,但我更新了你的小提琴页面,关闭事件工作得很好,我不知道你还有什么?
    • __doPostBack('', '');用于回发。请告诉我你在我的代码中做了哪些更改,以便我可以粘贴它。
    • 我刚刚添加了关闭事件
    • 在 x 单击时,我可以关闭模​​式弹出窗口,但我想要的是刷新父页面,如果我放 .aspx 页面,这不会发生。如果我放一个 div,它工作正常。 .
    猜你喜欢
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多