Javascript JQuery 1.11.2无法在初始化之前调用对话框上的方法;试图调用方法';摧毁';
我最近使用jquerymigratev1.2.1从jquery1.3(我知道,我知道,这个项目已经有6年历史了,我正在从另一个开发人员那里接管它,希望它能……正确地完成)升级到1.11.2,因为从一个版本升级到另一个版本可能会花费我的余生 不管怎么说,我遇到了一些小问题,大部分问题我都能修复,但这一点让我感到困惑。下面的代码在1.5.1中运行得非常好,但在1.11.2中抛出此错误“初始化之前无法在对话框上调用方法;试图调用方法‘destroy’。 代码如下:Javascript JQuery 1.11.2无法在初始化之前调用对话框上的方法;试图调用方法';摧毁';,javascript,jquery,jquery-ui,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Jquery Ui Dialog,我最近使用jquerymigratev1.2.1从jquery1.3(我知道,我知道,这个项目已经有6年历史了,我正在从另一个开发人员那里接管它,希望它能……正确地完成)升级到1.11.2,因为从一个版本升级到另一个版本可能会花费我的余生 不管怎么说,我遇到了一些小问题,大部分问题我都能修复,但这一点让我感到困惑。下面的代码在1.5.1中运行得非常好,但在1.11.2中抛出此错误“初始化之前无法在对话框上调用方法;试图调用方法‘destroy’。 代码如下: $(document).ready(
$(document).ready(function() {
setupEvents();
});
function setupEvents() {
$('.dmr-id').click(function(e) {
e.preventDefault();
loadConsumerServiceDialog();
});
function loadConsumerServiceDialog() {
$('#consumer-service-dialog').dialog("destroy");
$('#consumer-service-dialog').dialog("open");
$('#consumer-service-dialog').dialog({
modal: true,
height: 740,
width: 1000,
title: 'Consumer Service Detailed Relations',
resizable: false
});
}
如果我在“destroy”方法中添加注释,它会在“open”方法中抛出相同的错误。这似乎是一个明显的错误,对话框未初始化,但如何在打开之前初始化它?我不明白为什么它会在1.11.2版本中抛出,而不是在其他版本中抛出
如果有人能给我指出正确的方向,我不反对自己去弄清楚,任何帮助都将不胜感激
谢谢 在对话框存在之前,您不能销毁或打开它。我建议先创建对话框,然后再打开或关闭它
$(document).ready(function() {
setupEvents();
});
function setupEvents() {
var consumerServiceDialog = $('#consumer-service-dialog').dialog({
modal: true,
height: 740,
width: 1000,
title: 'Consumer Service Detailed Relations',
resizable: false,
autoOpen: false
});
$('.dmr-id').click(function(e) {
e.preventDefault();
loadConsumerServiceDialog();
});
function loadConsumerServiceDialog() {
//consumerServiceDialog.dialog("destroy"); // why destroy it?
consumerServiceDialog.dialog("open");
}
错误消息清楚地描述了什么是错误的。您试图在对话框存在之前打开或销毁它。您需要首先确保它是一个对话框,然后再尝试销毁或打开它。我建议测试一下它是否有ui对话框类。我明白它在说什么,但我不明白的是,为什么这个在以前的版本中可以工作,而不是这个版本?这似乎是一个相当标准的问题,如果对话框不存在,那么无论版本如何,它都不存在,不是吗?因为库几乎是重新编写的?为什么添加此要求是一个需要针对jQuery UI开发团队的问题。我认为如果它只是默默地忽略调用而不是抛出错误会更好,尽管我相信他们有一些很好的理由让它抛出错误。谢谢,我想我的好奇心征服了我:)谢谢你的帮助。我还发现一篇帖子说,最新的JQuery不允许对未初始化的项调用方法。我很感激!