Jquery ui 如何在不指定html div的情况下使用jquery ui创建对话框

Jquery ui 如何在不指定html div的情况下使用jquery ui创建对话框,jquery-ui,dialog,Jquery Ui,Dialog,使用jquery ui创建对话框非常简单: <script> $(function() { $( "#dialog" ).dialog(); }); </script> <div id="dialog" title="Basic dialog"> <p>This is the default dialog which is useful for displaying information. The dialog window c

使用jquery ui创建对话框非常简单:

<script>
$(function() {
    $( "#dialog" ).dialog();
});
</script>

<div id="dialog" title="Basic dialog">
    <p>This is the default dialog which is useful for displaying information. The dialog window can be   moved, resized and closed with the 'x' icon.</p>
</div>
如果不在html部分中指定任何内容,那么jQueryUI可以做到这一点吗?(我必须在这里使用jquery ui) 谢谢

David

基本代码

var d = $("#someId");
if (d.length < 1)
    d = $("<div/>").attr("id", "someId")
                   .appendTo("body");
else
    d.dialog('destroy');
d.html('some message')
 .dialog({ some_options })
 .dialog("open");

虽然我不确定您为什么要打开一个没有内容的对话框,但您可以轻松地动态创建一个新对话框,并对其调用jquery对话框:

$("<div>hello!</div>").dialog();
$(“你好!”).dialog();

Juan Ayalas解决方案应适用于模态对话框。 对于非模态对话框,最好跟踪函数内部的id。 我使用下面的代码,它不是完美的,但应该可以确保 id是唯一的。代码几乎与Juan Ayalas示例相同,但使用了一个计数器以避免重复id(此外,我删除了OK按钮作为默认值)

(函数($)
{
var dCounter=0;//本地但为“静态”变量
$扩展({
showPageDialog:功能(标题、内容、按钮、选项){
///在页面上显示对话框的实用程序。按钮和选项是可选的。
///对话框按钮。可选,默认为无(单个确定按钮)。
///附加jQuery对话框选项。可选。
如果(!按钮)
按钮={};//{“确定”:函数(){$(this).dialog(“close”);};
var除雾选项={
自动打开:错误,
宽度:“自动”,
莫代尔:错,
//表演:“盲人”,
//隐藏:“爆炸”,
标题:标题,,
按钮:按钮
};
如果(选项)
defOptions=$.extend(defOptions,options);
dCounter++;
//log(“dCounter是”+dCounter);
var pdId=“#pageDialog”+dCounter;
var pd=$(pdId);
如果(局部放电长度<1)
pd=$(“”).attr(“id”,pdId)
.附于(“主体”);
其他的
对话框(“销毁”);
pd.html(内容)
.对话框(除雾选项)
.对话框(“打开”);
}//函数结束showPageDialog
}//扩展选项结束
)//扩展参数结束
}//函数结束定义

感谢您的快速回复,我自己也找到了答案:-)var$dialog=$(''.html('每次都会显示此对话框!').dialog({autoOpen:false,title:'Basic dialog'});顺便说一句,我如何在对话框中打开url,这里变得贪婪:-)您使用load()jquery方法:$(“hello!”).load(url.dialog();此外,fancybox还提供了一些非常好的一流支持:(我个人最喜欢的)谢谢,但是.load(url).dialog()也会刷新主页,并给我错误:错误:尝试在清除的作用域上运行编译并执行脚本
var d = $("#someId");
if (d.length < 1)
    d = $("<div/>").attr("id", "someId")
                   .appendTo("body");
else
    d.dialog('destroy');
d.html('some message')
 .dialog({ some_options })
 .dialog("open");
(function($) {
    $.extend({
        showPageDialog: function (title, content, buttons, options) {
            /// <summary>Utility to show a dialog on the page. buttons and options are optional.</summary>
            /// <param name="buttons" type="Object">Dialog buttons. Optional, defaults to single OK button.</param>
            /// <param name="options" type="Object">Additional jQuery dialog options. Optional.</param>
            if (!buttons)
                buttons = { "Ok": function () { $(this).dialog("close"); } };
            var defOptions = {
                autoOpen: false,
                modal: true,
                //show: "blind",
                //hide: "explode",
                title: title,
                buttons: buttons
            };
            if (options)
                defOptions = $.extend(defOptions, options);
            var pd = $("#pageDialog");
            if (pd.length < 1)
                pd = $("<div/>").attr("id", "pageDialog")
                                .appendTo("body");
            else
                pd.dialog('destroy');
            pd.html(content)
              .dialog(defOptions)
              .dialog("open");
        }
    }//end of function show...
  )//end of extend Argument
})(jQuery)
$.showPageDialog(title, message, {
                "Yes": function () {
                    $(this).dialog("close");
                    // do something for 'yes'
                },
                "No": function () {
                    // do something for no
                }
        }
$("<div>hello!</div>").dialog();
  (function($) 
  {
    var dCounter=0; //local but "static" var 
    $.extend({
    showPageDialog: function (title, content, buttons, options) {
        /// <summary>Utility to show a dialog on the page. buttons and options are optional.</summary>
        /// <param name="buttons" type="Object">Dialog buttons. Optional, defaults to nothing (single OK button).</param>
        /// <param name="options" type="Object">Additional jQuery dialog options. Optional.</param>
        if (!buttons)
            buttons = {}; //{ "Ok": function () { $(this).dialog("close"); } };
        var defOptions = {
            autoOpen: false,
            width: "auto",  
            modal: false,   
            //show: "blind",
            //hide: "explode",
            title: title,
            buttons: buttons
        };
        if (options)
            defOptions = $.extend(defOptions, options);
        dCounter++;
        //console.log("dCounter is " + dCounter);
        var pdId = "#pageDialog"+dCounter;          
        var pd = $(pdId);
        if (pd.length < 1)
            pd = $("<div/>").attr("id", pdId)        
                            .appendTo("body");
        else
            pd.dialog('destroy');

        pd.html(content)
          .dialog(defOptions)
          .dialog("open");   
    }//end of function showPageDialog
  }//end of extend options
  )//end of extend argument
  }//end of function definition