例如,我通过 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);
});
最佳答案
更新的问题:当像这样调用它时,您仍然遇到与 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
。
关于Jquery-UI:对话框不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3791781/