0

我有这种非常奇怪的行为。

仅当在对话框打开之前显示警告框时,以下代码才能正常工作(从控制器中的 Action 获取 html)。

 var ticks;

    function InitializeDialog($element) {

        var t;
        $.get(approveAction + "?ticks=" + ticks, function (data) {
           t = data;
        });
        //alert(t);
        $element.html(t);

        $element.dialog({
            autoOpen: false,
            width: 650,
            height: 600,
            resizable: true,
            draggable: true,
            model: true,
            show: 'slide',
            closeText: 'x',
            dialogClass: 'alert',
            closeOnEscape: true,


            close: function () {
                $(this).dialog('close');
                window.location.reload();
            }

        });

    }

    $("#cal").on('click', ".events", function () {
        ticks = $(this).attr('value');
        InitializeDialog($("#comments"));


        $("#comments").dialog("open");
    }); 

如果我将 alert(t) 保留为注释,则对话框将显示为空,而如果我取消注释,则一切都按预期工作。类似的代码在应用程序的其他地方也能正常工作。

知道这是为什么吗?

4

1 回答 1

1

.get使用回调中动态加载的内容执行操作

$.get(approveAction + "?ticks=" + ticks, function (data) {
           t = data;
           // Perform operation's here
           $element.html(t);
           //...
});
于 2013-04-09T11:56:38.833 回答