Jquery对话框关闭不起作用

时间:2011-05-04 15:16:45

标签: jquery dialog

我有两个简单的页面。

索引包含一个带有锚标记的超链接,其中jquery具有定义的函数点击。 该页面还包含一个名为“容器”的DIV

点击功能使用.dialog()

打开一个dailog

对话框页面本身是第二页,我尝试关闭对话框,但这不起作用。

你能解释一下为什么这不起作用吗?

======来自索引页面的代码===========

<script type="text/javascript">
    $().ready(function () {
        $("#LaunchModal").click(function () {
            $.get(
                "Home/RandomPopupView",
                function (htmlResult) {
                    $("#RandomModal").remove(); //In case this is the second time they've requested the dialog.
                    $("#container").append(htmlResult);
                    $("#RandomModal").dialog();
                }
            );
            return false; //To keep the default behavior of the anchor tag from occuring.
        });
    });
</script>
<a href="" id="LaunchModal">Launch Modal!</a>
<div id="container">

====== DIALOG PAGE中的代码===========

<div id="RandomModal">
    <script type="text/javascript">
        $().ready(function () {

            //TEST TRY TO CLOSE THE DIALOG DIV IMMEDIATELY FROM WITHINN THE DIV ITSELF
            $("#RandomModal").dialog("close"); //CLOSE DOES NOT WORK

            $("#submitModal").click(function () {
                var SomeString = $("#SomeString").val()

                $.post("/Home/RandomPopupViewPOST",
                {
                    SomeString: SomeString
                },
                    function (html) {
                        $("#RandomModal").empty();
                        $("#RandomModal").append(html);
                    });
            });
        });
    </script>
</div>

=======================================

3 个答案:

答案 0 :(得分:1)

get方法不会加载您需要加载iframe以在第二页上触发准备事件的页面

所以我希望我们将您的代码放在主页面中并使用直播活动

$("#submitModal").live("click",function () {
    var SomeString = $("#SomeString").val()

    $.post("/Home/RandomPopupViewPOST",
    {
        SomeString: SomeString
    },
        function (html) {
            $("#RandomModal").empty();
            $("#RandomModal").append(html);
        });
});

虽然我不确定这是正确的解决方案,但是我读的代码越多,我就越不明白你想要做什么

答案 1 :(得分:1)

如果要加载并执行其他脚本,则应使用$.getScript()

请参阅jQuery网站上的文档,以便更好地了解如何使用它:jQuery.getScript()

答案 2 :(得分:0)

$("#RandomModal").dialog("close");代码保留在索引页面上。