jQuery ( "#dialog" ).dialog('close') 在单独的视图上使用按钮不起作用



我在MVC项目中有一个 ASP.NET 视图,我正在尝试在其中创建一个弹出对话框来创建数据。 还有另一个视图被加载,该视图有一个 ID 为"btncancel_create"的按钮。 我无法让该按钮关闭对话框。 我正在使用jQuery 2.1.3和jQuery UI 1.11.4。

下面是按钮的代码:

<input type="button" value="Cancel" id="btncancel_create" />

这是视图:

$(document).ready(function () {
    //alert("Document is ready");
    var url = "";
    $("#dialog-create").dialog({
        title: 'Create User',
        autoOpen: false,
        resizable: false,
        width: 400,
        show: { effect: 'drop', direction: "up" },
        modal: true,
        draggable: true,
        open: function (event, ui) {
            $(".ui-dialog-titlebar-close").hide();
            $(this).load(url);
        }
    });
    $("#lnkCreate").on("click", function (e) {
        url = $(this).attr('href');
        $("#dialog-create").dialog('open');
        return false;
    });
    //$("#btncancel_create").on("click", function (e) {
    //    $("#dialog-create").dialog("close");
    //    return false;
    //});
    $("#dialog-create").button("#btncancel_create").click(function (e) {
        alert("btncancel_create was clicked");
        $("#dialog-create").dialog('close');
        return false;
    });
});
<div id="dialog-create" style="display: none"></div>
<p>@Html.ActionLink("Create New", "Create", null, new { id = "lnkCreate" })</p>

如您所见,我尝试了其他不起作用的东西,该方法已被注释掉。 未注释的按钮单击功能会返回警报,但不会关闭对话框。 提前感谢您的帮助,如果您需要更多信息,请告诉我。

而不是

$("#btncancel_create").on("click", function (e) {...(在我上面注释掉的代码中)
它应该是
$(document).on("click", "#btncancel_create", function (e) {... .

我在这里找到了答案:在jQuery中将live()转换为on()。

最新更新