JQuery 1.11.2 无法在初始化之前调用对话框的方法;试图调用方法 'destroy'
JQuery 1.11.2 cannot call methods on dialog prior to initialization; attempted to call method 'destroy'
我最近 'upgraded' 从 JQuery 1.3(我知道,我知道,这个项目已有 6 年历史了,我正在从另一个开发人员那里接手,希望能完成它.. .properly) 到 1.11.2,使用 JQuery 迁移 v1.2.1,因为从一个版本到另一个版本可能会花费我余生。
无论如何,我遇到的问题很少,其中大部分我都能修复,但是这个问题让我很困惑。以下代码在 1.5.1 中运行良好,但在 1.11.2 中抛出此错误 "Cannot call methods on dialog prior to initialization; attempted to call method 'destroy'".
代码如下:
$(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");
}
我最近 'upgraded' 从 JQuery 1.3(我知道,我知道,这个项目已有 6 年历史了,我正在从另一个开发人员那里接手,希望能完成它.. .properly) 到 1.11.2,使用 JQuery 迁移 v1.2.1,因为从一个版本到另一个版本可能会花费我余生。
无论如何,我遇到的问题很少,其中大部分我都能修复,但是这个问题让我很困惑。以下代码在 1.5.1 中运行良好,但在 1.11.2 中抛出此错误 "Cannot call methods on dialog prior to initialization; attempted to call method 'destroy'".
代码如下:
$(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");
}