例如我通过newDialog("This is title !", "this is my content");
function newDialog(mytitle, mycontent){
var $dialog = $('<div id="mydialog"></div>')
.html(mycontent)
.dialog({
autoOpen: false,
modal: false,
title: mytitle
});
$dialog.dialog('open');
return false
}
这是错误
错误:$(“”)。html(mycontent).dialog不是函数
这是什么意思?我确保使用firebug插件完全加载所有jquery-UI和jquery js文件以确认所有这些。
我不明白为什么会突然停止工作。
我用$(document).click(newDialog)尝试过它;和$('body')。delegate(':not(#mydialog *,#mydialog)','click',newDialog);但错误并没有消失。后者被使用,因此如果意外点击对话框,则不会产生新的对话框。
$(top.document).ready(function () {
var fruits = new Array();
$(document).click(newDialog("happy title", "happy content to keep everyone happy"));
//$('body').delegate(':not(#mydialog *, #mydialog)','click', newDialog);
});
答案 0 :(得分:5)
有关更新的问题:您仍然遇到与bfeore相同的问题,如下所示:
$(document).click(newDialog);
它被称为,没有任何参数,这意味着.html()
仍然传递undefined
。你需要传递参数,例如:
$(document).click(function() { newDialog("Title", "Content"); });
或者为参数提供一些默认值,例如:
function newDialog(mytitle, mycontent){
mytitle = mytitle || "Default Title";
mycontent = mycontent || "Default Content";
原始问题: 你的变量名称是关闭的,这个:
.html(mycontent)
应该是:
.html(mycon)
目前,由于它未定义,它正在调用.html()
获取字符串,而不是设置 html。标题也是如此,您的参数为mytit
,您尝试使用的变量为mytitle
。
答案 1 :(得分:1)
检查dialog
插件是否已正确安装。不应该有任何其他原因,为什么这不起作用。
我可以借此机会进行一些无耻的自我推销为您提供另一种选择。我写了一个jQuery插件,它可以完成你想做的事情。如果您有兴趣,可以使用它:http://code.google.com/p/dialogwrapper/