我有一个使用 JQuery 和 JQueryUI 的 ASPNET MVC4 应用程序。我有一个 jqueryui 对话框,并且 jquery remove() 抛出一个 javascript 错误。
我尝试了 jquery/jqueryui 的不同组合,但不管发生什么错误。
我还包括了 jquery 迁移。
有没有人看到这个错误?是否有 jquery/jqueryui 的组合可以工作?
我正在使用 IE10 进行测试。
这在没有 MVC4 的纯 HTML 应用程序中工作得很好。
这是代码,它是最后一行,使用 remove() 删除 jquery 对象,当对话框关闭时,destroyForm 运行:
var loadDialog = function(url, caption, formName) {
var dialogID = "dialogholder" + dialogStack.length;
var markup = $("<div id=" + dialogID + "></div>");
markup.appendTo('body');
var dialog = $("#" + dialogID).load(url, function(response, status, xhr) {
if (status == "error") {
var msg = "Error loading url: ";
alert(msg + xhr.status + " " + xhr.statusText);
}
else{
ko.applyBindings(null, dialog.find('form').get(0));//bind to the last form in the model i.e. the form about to be shown in the dialog
//store the form name so that the destory form function can remove from client model
if (formName)
$.extend(dialog, { formName: formName} );
else
$.extend(dialog, { formName: dialog.find('form').get(0).id} );
}
}
).dialog( { modal: true, title: caption, width: "900px", resizable: true, close: destroyForm } );
dialogStack.push(dialog);
};
function destroyForm()
{
var dialog = dialogStack.pop();
topoix.destroy(dialog.formName);
dialog.dialog('destroy');//return element to original state.
dialog.remove();//remove element from DOM
}