必须存在警报框才能使html()和对话框在Jquery中正常工作

时间:2013-04-09 11:54:19

标签: jquery asp.net-mvc-4

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

只有在对话框打开前显示警告框时,下面的代码才能正常工作(从控制器中的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");
    }); 

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

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

使用动态加载的内容.get回调

执行操作
$.get(approveAction + "?ticks=" + ticks, function (data) {
           t = data;
           // Perform operation's here
           $element.html(t);
           //...
});