2012-01-09 48 views
30

Tôi đang cố gắng sử dụng hộp thoại jQueryUI trong ứng dụng MVC3 nhưng gặp vấn đề với nó. Hộp thoại tôi đang tải một phần lượt xem vào đó người dùng sẽ chỉnh sửa hoặc tạo một mục mới. Điều này làm việc tốt nhưng nếu tôi cố gắng để lưu hoặc cập nhật các mục, hoặc nếu tôi cố gắng để đóng nó tôi nhận được tin nhắn trong tiêu đề.Loại không bắt buộcLỗi: Đối tượng [đối tượng đối tượng] không có phương thức 'hộp thoại'

Tôi đã thêm tất cả các tệp .js bắt buộc nhưng vẫn gặp lỗi. Tôi cũng đã sử dụng firebug nhưng vẫn không thể tìm thấy tại sao lỗi xảy ra.

HTML

<span class="EditLink ButtonLink" addressId="@addr.Id">Modify this Address</span> 
<div id="popup"></div> 

Javascript

$(document).ready(function() { 
    var id = 0; 

    //define config object 
    var dialogOpts = { 
     title: "Edit item", 
     modal: true, 
     autoOpen: false, 
     height: 500, 
     width: 500, 
     open: function() { 
      $("#popup").load("/partialviewtoload/" + id); 
     }, 
     buttons: { 
      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }; 

    $("#popup").dialog(dialogOpts); //end dialog 

    $('.EditLink').click(function() { 
     id = $(this).attr("itemId"); 
     $("#popup").dialog("open"); 
     return false; 
    });  
}); 
+0

xin lỗi, dán không đúng. – Nollaig

Trả lời

61

vấn đề là tôi đã được tham khảo "jquery-1.5.1.min.js" hai lần. Khi ở trong _Layout.cshtml và cũng trong chế độ xem một phần tôi đã tải. . Đã xóa tham chiếu trong chế độ xem từng phần và đã sắp xếp nó.

5

Dường như trình duyệt đã không được nạp jQueryUI, đảm bảo rằng nó là trong DOM của bạn

+0

Nó đã tải jqueryui như tôi có thể nhìn thấy nó bằng cách sử dụng firebug. Ngoài ra, hộp thoại tải lần đầu tiên không có vấn đề gì. Vấn đề là cố gắng đóng nó bằng cách sử dụng $ (this) .dialog ('close') và cũng mở lại nó. – Nollaig

+1

Vì vậy, tôi nghĩ rằng '$ (this)' không trỏ đến một phần tử có chứa đối tượng hộp thoại. Trước '$ (this) .dialog ('close')' test '$ (this)' by 'console.log (this)' –

+1

Và, tôi nghĩ, $ ('# popup'). Dialog ('close') , sẽ chính xác là –

0

Trong trường hợp của tôi nó là

you should include first grid.locale-en.js and then jquery.jqGrid.min.js.

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