我正在使用 JQuery Dialog 的 Modal Popup 功能,并且已经使用它大概 5-6 个月了。直到今天,我从未遇到过任何问题。在我的电脑上一切正常,但另一名员工收到 JQuery 错误并且不会显示弹出窗口。它昨天为他工作,并且没有对代码库进行任何更改。
我正在使用 Chromes 检查元素选项,他得到的错误是“('div')没有'parent()'功能”。我理解这个错误的含义,但我不知道为什么它首先出现。我检查过的所有其他计算机都工作正常。此外,它与浏览器无关。在 IE、FF 和 Chrome 中破解。
我知道今天早上对我来说有一个 Windows 更新,但我无法想象 Windows 更新会破坏 JQuery 的功能。关于这里可能发生的其他事情有什么想法吗?
function ModalPopup(divId, parentId, isExtender) {
if (isExtender == "True") {
ModalPopupExtender(parentId, divId);
return;
}
var div = document.getElementById(divId);
//Disable any datepickers on the popup otherwise they will display on load
var datePickers = $(div).find("input[class='datePicker hasDatepicker']");
datePickers.each(function (index) {
$(this).datepicker('disable');
});
//Find the buttons on the div
var buttons = $(div).find("input[type='submit']");
buttons.each(function (index) {
$(this).click(function () {
Cancel(divId);
//$(div).dialog("close");
});
$(this).attr("style", "padding:5px; margin:5px; color:#696969; background-color:#EEE; border-radius:6px;");
});
//Create a footer div, add the buttons to the div
$footerDiv = $('<div style="height:40px;" />');
for (var i = 0; i < buttons.length; ++i) {
$footerDiv.append(buttons[i]);
}
//Add a canel button that closes the popu
$cancelBtn = $('<input type="button" style="padding:5px; margin:5px; color:#696969; background-color:#EEE; border-radius:6px;" value="Cancel" onclick="Cancel(\'' + divId + '\')" />');
$footerDiv.append($cancelBtn);
//Display the div with the info
$(div).attr("style", "display:block; font-size: 11px;");
//Display the dialog box
$(div).dialog({ minWidth: 300,
minHeight: 150,
maxHeight: 400,
draggable: false,
resizeable: false,
modal: true,
buttons:
{
'Cancel': function () {
$(div).dialog("close");
}
},
open: function (e, ui) {
$(e.target).parent().find('span').filter(function () {
return $(this).text() === 'Cancel';
}).parent().replaceWith($footerDiv);
//Adjust the width for IE
var version = getInternetExplorerVersion();
if (version != -1 && version < 8.0) {
$(e.target).dialog('option', 'width', ($(e.target)[0].scrollWidth + 50) + 'px');
}
else
$(e.target).dialog('option', 'width', 'auto');
//Adjust the height if the dialog is too big
if ($(div).height() > 800)
$(e.target).dialog('option', 'height', 800);
$(e.target).dialog('option', 'position', 'center');
}
});
//Hide the title bar
$(div).dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").hide();
$(div).parent().appendTo(jQuery("form:first"));
//Enable the datepickers again after the dialog has opened
datePickers.each(function (index) {
$(this).datepicker('enable');
});
//Style any select boxes to be the width of their container
$(div).find("select:[multiple]").each(function () {
$(this).width("100%");
});
}
编辑另外值得注意的是,如果我单击按钮显示弹出窗口,它会给我一个快速的错误消息,然后刷新页面。