2012-03-10 24 views
8

tôi có kịch bản sau đây trong MVC asp.net của tôi: -Microsoft JScript runtime lỗi: Không thể nhận được giá trị của tài sản 'defaultView': đối tượng là null hoặc không xác định

function deleteconfirmation() { 

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

} 

nhưng khi nó được thực thi nó sẽ trở lại các lỗi sau "Microsoft JScript runtime lỗi: Không thể nhận được giá trị của tài sản 'defaultView': đối tượng là null hoặc không xác định" trên if(!(e=a.ownerDocument.defaultView)) bên trong jquery-1.6.2.min.js. Gợi ý: - lỗi này sẽ chỉ xảy ra nếu tôi đang sử dụng IE, nó sẽ không xảy ra nếu tôi đang sử dụng chrome hoặc firefox !!!! Vậy điều gì có thể gây ra điều này? BR

+0

Phiên bản nào nếu IE? –

Trả lời

1

Lỗi do số $(this) của bạn không đề cập đến bất kỳ điều gì hoặc thay vào đó là window object. Nó phụ thuộc vào cách chức năng của bạn được gọi. Tốt nhất là để vượt qua các yếu tố bạn muốn sử dụng vào chức năng deleteConfirmation() như vậy:

$("#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(); }); 
    }); 
} 

Xem jsfiddle này cho một ví dụ.

Nếu bạn đang cố gắng fadeOut cảnh báo hộp riêng của mình, đó là thực hiện theo mặc định, như bạn có thể đã biết.

-1

Tôi nghĩ rằng bạn đã quên thêm Reference của Thư viện jQuery. Vui lòng kiểm tra điều này và thêm vào số jQuery Reference

Khả năng khác là tha thứ thêm Tham chiếu jAlert vào trang bạn đang sử dụng.

Các vấn đề liên quan