0

我正在使用 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%");
});

}

编辑另外值得注意的是,如果我单击按钮显示弹出窗口,它会给我一个快速的错误消息,然后刷新页面。

4

0 回答 0