Jquery-UI:对话框不是函数错误

标签 jquery jquery-ui jquery-ui-dialog

例如,我通过 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/

相关文章:

jquery - 从代码隐藏中打开 jQuery 对话框

跨多个容器或父级的 jQuery UI 可排序 div

javascript - 为什么我的 .infobox 在放大或缩小时没有调整到父级?

jquery - 为什么我无法从 jQuery UI 对话框中触发提交按钮?

javascript - 使用 HTML5 播放器时使用 Javascript 更改 Youtube 视频

jquery-ui - jQuery UI Accordion 关闭后不会重新打开

jquery - 在 jQuery UI 对话框中使用 DataTables TableTools 时出现问题

javascript - 释放 JavaScript 事件处理程序

javascript - 当光标悬停在图像上时显示文本

jQuery 未捕获类型错误 : Cannot read property 'fn' of undefined (anonymous function)