2

事实

  • 我有一个 mvc 项目。
  • 我正在使用 jquery。

问题

$('#ModalData').empty(); 没有按我的预期工作。

细节

当我点击测试链接三次时,我得到 在此处输入图像描述

然而,hello world 应该被
$('#ModalData').empty(); 清空。但它没有。相反,每次我单击测试链接时,它都会打开模式对话框并创建一个新的 hello world。

另请注意,如果我在不使用局部视图的情况下附加 html,则 jquery empty 可以工作。有什么帮助吗?

 $(".modal").on("click", function () {

        $.ajaxSetup({

        cache: false
    });
    $("#dialog-form").dialog("open");

    $('#ModalData').empty();//not working to well

    $.get("/MedicineManagement/GetModal/", function (data)
    { $("#ModalAjaxData").append(data); });
});


$("#dialog-form").dialog({
    autoOpen: false,
    height: 400,
    width: 550,
    modal: true,
    buttons: {
        "Modify Actual Potential": function () {


            if (true) {
                $(this).dialog("close");

            }
        },
        Cancel: function () {
            $(this).dialog("close");

        }
    },
    close: function () {


    }
});

控制器

     [HttpGet]
        public PartialViewResult GetModal()
        {
            return PartialView("_AddMedicineList");
        }

触发 jquery 的 HTML

 <div id="dialog-form" title="Edit Actual Potential">
        <div class="ModalAjaxData" id="ModalAjaxData"></div>
    </div>
    <a href="#" class ="modal">test </a>
4

1 回答 1

2

在您的 AJAX 成功回调中,您要附加:

$("#ModalAjaxData").append(data);

#ModalAjaxData而不是设置div的html :

$("#ModalAjaxData").html(data);

此外,您似乎正在清空一些#ModalData我在您的标记中看不到的元素,因此什么都不做也就不足为奇了$('#ModalData').empty();。你可能的意思是$('#ModalAjaxData').empty();。但是,如果您使用$("#ModalAjaxData").html(data);而不是附加,则不需要清空任何东西。

于 2012-06-13T16:22:31.627 回答