JQuery UI对话框显示在页面上,而不是弹出

JQuery UI Dialog shows on page instead of popup

本文关键字:对话框 UI 显示 JQuery      更新时间:2023-09-26

我有一个jqueryUI对话框弹出显示在页面上…并在需要时弹出。一些奇怪的功能。div内的任何内容都将显示在页面上,而弹出窗口将工作,但没有div上的内容。我试图在文档准备好之前创建弹出窗口。下面是我的对象正在运行的代码,再次在文档准备好之前。

    var edit_div=document.createElement('div');                 
    var me = this;
    $(edit_div).dialog(
        {
            autoOpen: false,
            height: 400,
            width: 600,
            resizable: false,
            modal: true,
            buttons: 
            {
                "Submit": function() 
                {
                    me.submitForm();
                },
                Cancel: function() 
                {
                    $( this ).dialog( "close" );
                }
            },
            close: function() 
            {
            },
        });

如果我将对话框创建代码移动到一个单独的函数中,并在文档准备好时调用该函数,则弹出框可以正常工作,如下所示:

$(document).ready(function()
{
   mfg_table.init();
}

和创建对话框的初始化代码

   this.init = function()
    {
        //alert('initing');
        var me = this;
        $('#' +this.table_id + this.edit_table_name).dialog(
            {
                autoOpen: false,
                height: 400,
                width: 600,
                resizable: false,
                modal: true,
                buttons: 
                {
                    "Submit": function() 
                    {
                        me.submitForm();
                    },
                    Cancel: function() 
                    {
                        $( this ).dialog( "close" );
                    }
                },
                close: function() 
                {
                },
            });
    }

那么为什么我不能在渲染页面之前在DOM对象上创建对话框呢?

是否有可能在浏览器加载jquery.js文件之前调用您的脚本?

文档。Ready将在运行代码之前等待页面完全加载。如果没有它,它就不能正常工作,这意味着在您尝试运行脚本之前没有加载必要的资源。

你可能想尝试将你的内联脚本移动到html文件的最后,特别是在所有的。js和插件文件被引用之后。

我希望我可以更具体,但是如果没有更多的代码或一个实际的例子,很难看到发生了什么。