Microsoft JScript运行时错误:无法获取属性"defaultView"的值:object为null或undefined

joh*_* Gu 8 jquery asp.net-mvc-3

我的asp.net mvc里面有以下脚本: -

function deleteconfirmation() {

    jAlert('The Answer was deleted succsfully', 'Deletion Confirmation');
    $(this).fadeOut('slow', function () { $(this).remove(); });

}
Run Code Online (Sandbox Code Playgroud)

但是当它被执行时,它将返回以下错误"Microsoft JScript运行时错误:无法if(!(e=a.ownerDocument.defaultView))在jquery-1.6.2.min.js内部获取属性'defaultView'的值:对象为null或未定义" .提示: - 只有在使用IE时才会出现此错误,如果我使用的是chrome或firefox,则不会发生这种情况!那可能是什么导致了这个?BR

Cha*_*lle 1

该错误是由于您$(this)没有提及任何内容而引起的,或者window object更确切地说。这取决于你的函数是如何被调用的。最好将要使用的元素传递到函数中,deleteConfirmation()如下所示:

$("#deleteAnswer").bind("click", function() {
    deleteConfirmation(this);
});

function deleteConfirmation(element) {
    jAlert('Deleted succsfully', 'Deletion Confirmation', function() {
        alert("The user clicked ok");

        // Hides the element that caused the click event
        $(element).fadeOut('slow', function () { $(element).remove(); });
    });
}
Run Code Online (Sandbox Code Playgroud)

请参阅此jsfiddle的示例。

如果您尝试使用fadeOut警报框本身,那么默认情况下会这样做,您可能已经知道了。