1

我有一个使用 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
    }
4

0 回答 0