jquery ui:如何打开一个对话框

时间:2010-10-21 07:58:59

标签: jquery ajax jquery-ui

我jsut检查了打开对话框的jQuery UI示例,奇怪的是消息需要用HTML编写并通过jQuery选择器读取:

http://jqueryui.com/demos/dialog/

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



<div class="demo">

<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>

我想要做的很简单,我希望对话框显示一个定义为js变量的字符串,如下所示:

var cmd_str = "abcdefg";
$(cmd_str).dialog();

但这似乎不太合适。

3 个答案:

答案 0 :(得分:2)

它不能只是任何字符串,它必须是html。

var cmd_str = "<div>abcdefg</div>";
$(cmd_str).dialog();

或maby更干净的版本:

var cmd_str = "abcdefg";
$(cmd_str).wrap("<div></div>").dialog();

进一步解释:

$("abcdefg")会匹配<abcdefg />元素,因为$("a")会匹配<a />元素。

要毁灭:

最简单的方法是将用于对话框的jquery对象保存在这样的变量中。

var cmd_str = "abcdefg";
var $message = $(cmd_str).wrap("<div></div>").dialog();

function destroyMessage(){
    $message.dialog("destroy");
}

答案 1 :(得分:1)

当你调用$(cmd_str) jQuery搜索名为abcdefg的标签时......你应该将整个标记放在$()中,然后将其注入DOM然后调用{{1 }}。 就像那样,我想。

.dialog()

答案 2 :(得分:1)

你必须有一个div或一些其他元素,让它隐藏,然后对话框将根据对话框.show和.hide函数使其可见。使用.text或.val(取决于消息元素)功能来设置消息。

<div id="dialogMsg" style="hidden"></div>
$("#dialogMsg").text("Your message").dialog().show();
// ... or it can be closed if settings are set when doing .dialog(...)
$("#dialogMsg").hide();