如何解决div.dialog 不是 Modal Popup JQuery 3.5.1 中的函数
所以决定更新我项目中的一些包,但总是有问题。我有一个设置,其中一个链接会显示一个带有 .chtml
文件的模式对话框。我使用了一个名为 ModalDialogExtentions 的助手,它调用了一个名为 modaldialog.js 的 Javascript 文件。当我更新 JQuery 和 Bootstrap 时,虽然我不相信更新引导程序与它有任何关系,但我的模态显示在页面底部 - 就像卡住一样。
我在控制台窗口中收到一条错误消息,显示 modaldialog.js:30 Uncaught TypeError: div.dialog is not a function
这让我想到:
function openModalDialog(dialogDivId,title) {
var div = $("#" + dialogDivId);
div.dialog({
title: title,close: new Function("clearModalDialog('" + dialogDivId + "');"),modal: true,width: "auto",height: "auto",resizable: true
});
setFormDataAjaxAttributes(dialogDivId);
}
有谁知道这个版本的 JQuery 有什么变化?原始版本是 1.10.2。我知道我已经将它更新为 3.x.x 并且运行良好。但这个版本没有。它还在控制台中提及此文件以及 JQuery.unobtrusive-ajax.js
。我也更新了这个。
完整的控制台错误:
modaldialog.js:30 Uncaught TypeError: div.dialog is not a function
at openModalDialog (modaldialog.js:30)
at HTMLAnchorElement.eval (eval at getFunction (jquery.unobtrusive-ajax.js:34),<anonymous>:3:1)
at Object.success (jquery.unobtrusive-ajax.js:105)
at c (jquery-3.5.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.5.1.min.js:2)
at l (jquery-3.5.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.5.1.min.js:2)
感谢您的帮助!
更新:
这是模态对话框扩展之一:
public static MvcHtmlString ModalDialogActionLink(this AjaxHelper ajaxHelper,string linkText,string actionName,string dialogTitle,string CssClass)
{
var dialogDivId = Guid.NewGuid().ToString();
return ajaxHelper.ActionLink(linkText,actionName,routeValues: null,ajaxOptions: new AjaxOptions
{
UpdateTargetId = dialogDivId,InsertionMode = InsertionMode.Replace,HttpMethod = "GET",OnBegin = string.Format(CultureInfo.InvariantCulture,"prepareModalDialog('{0}')",dialogDivId),OnFailure = string.Format(CultureInfo.InvariantCulture,"clearModalDialog('{0}');alert('You are not authorized to access this area!')",OnSuccess = string.Format(CultureInfo.InvariantCulture,"openModalDialog('{0}','{1}')",dialogDivId,dialogTitle)
},htmlAttributes: new { @class = CssClass });
}
解决方法
我遇到了同样的问题,对话框没有打开, 当我调试东西并发现哪个是我的 Jquery 库时,我将我的 Jquery 和 Jquery min 库从 1.8 更新到 3.5.1,因为 Jquery 3.5.1 不再支持 Jquery 对话框,
由于某些库函数已被弃用,例如 MISE 和 curCSS,我通过修复这些函数来解决此问题
"dependencies": {
"@truffle/hdwallet-provider": "^1.3.1"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。