如何在单击对话框内的链接时关闭jquery ui对话框

时间:2016-07-04 21:37:42

标签: javascript jquery html dialog

我已经制定了条款和条件页面。我想让它出现在jQuery对话框中。

我为对话框声明了一个变量:

var $dialog = $('#TCsWindow').html('<iframe style="border: 0px;" src="importantInformation.html" width="100%" height="100%"></iframe>').hide();

然后创建一个打开对话框的函数:

    function opendialog(page) {
    $dialog.dialog({
        title: "",
        autoOpen: false,
        dialogClass: 'dialog_fixed TCdialog centered',
        modal: true,
        height: 500,
        width:400,
        responsive: true,
        draggable:true,
        open: function (event, ui) {
            $('#TCsWindow').css('overflow', 'hidden'); //this line does the actual hiding
            }
        });
    $dialog.dialog('open');
}

最后将click()事件附加到页面上的元素:

    $("#TCLink").click(function(event) {
    event.preventDefault();
    opendialog("importantInformation.html");
});

我遇到的问题是,在importantInformation.html页面中有一个链接,点击它时只需要关闭对话框。该链接的ID为&#34; closeTC&#34;:

    $("#closeTC").click(function(event){
    $dialog.close();
});

但是会发生的是实际包含页面在iFrame中加载。看来event.preventDefault();被忽略了。

任何人都可以了解我出错的地方吗?默认关闭&#34; x&#34;在对话框上工作得很好,但我不知道如何找到它是如何工作的。

3 个答案:

答案 0 :(得分:0)

该对话框位于父窗口中,而不在iframe内,可以使用parent从iframe访问父窗口中的元素。

$(parent.document).find('#TCsWindow').dialog( "close" );

答案 1 :(得分:0)

您需要使用event.stopPropagation()

答案 2 :(得分:0)

您需要从父级调用jQuery .dialog("close")方法:

请参阅此answer以供参考。

守则

$(parent.document).find('#TCsWindow').dialog( "close" );