我正在使用JQuery Dialog的Modal Popup功能,现在已经使用了大概5-6个月。直到今天我一直没有遇到任何问题。一切都在我的计算机上工作正常,但另一名员工正在收到JQuery错误,弹出窗口将无法显示。昨天它正在为他工作,并且没有对代码库进行任何更改。
我正在使用Chromes inspect元素选项,而他遇到的错误就像“('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%");
});
}
编辑另外值得注意的是,如果我点击按钮显示弹出窗口,它会给我一条快速错误消息,然后只刷新页面。