我希望有人可以幫助,因爲我在我的智慧結束與此。我想要做的是這個。jQueryUI模態公開事件和MVC.NET導致錯誤「.dialog不是一個函數」
- 「可拖動」項目被放入一個「可投放」區域(這個工程)
- 此職位的項目我的控制器的ID返回項目的類型是(這工作)
- 我將返回的項目名稱傳遞給打開模式的函數,並根據特定項目在模態中呈現局部視圖。
最後一點是問題所在。上述所有步驟都可以正常工作,模式會彈出,部分視圖會呈現給模態。但關閉對話框的按鈕會拋出錯誤「.dialog不是函數」,並且在使用角落中的「x」關閉模式後,嘗試打開模式將不會發生類似的錯誤。
下面是我正在努力嘗試使此工作的示例。
$(function() {
$('.draggable').draggable({ containment: '#imageboundry', revert: 'valid' });
$('#droppable').droppable({
drop: function (event, ui) {
$.ajax({
type: "POST",
url: '/Home/AddToCart/' + $(ui.draggable).attr("id"),
success: function (data) {
getItemType(data);
}
});
}
});
});
function getItemType(itemName) {
$('#dialogs').dialog({
open: function() {
$(this).load("AdditionalContent", { itemName: itemName }, function() {
alert("This happened");
});
},
modal: true,
resizable: false,
title: itemName,
width: 400,
autoOpen: false,
buttons: {
"Confirm": function() {
$(this).dialog('close');
}
}
});
}
這是我的控制器,它返回了局部視圖模態
public PartialViewResult AdditionalContent(string itemName)
{
return PartialView("_" + itemName + "Attributes");
}
關閉按鈕的工作原理,一旦我拿出open: function() { ... }
位,我可以一次又一次地重新打開該模式,但一旦我把這回錯誤被拋出。這顯然是原因,但不能爲我的生活找出原因。
在此先感謝您的幫助,並對很長的帖子感到抱歉。
UPDATE:
我已經嘗試在初始化中的document.ready模式,並從我的「拖放」功能的第一主函數調用它。從這樣做我已經縮小到這行代碼從我的控制器加載部分視圖。沒有這條線,功能就起作用。任何關於這個問題的想法。
$(this).load("AdditionalContent", { itemName: itemName }
@馬克OB:我要再次創建對話框,並重新填充的內容(使用'.load ''在'open'函數之外。我發現當小部件在一個元素上被多次調用時會發生奇怪的事情。你嘗試過這樣的戰略嗎? – 2011-03-05 03:01:30
@Andrew Whitaker:我嘗試了一些類似於在$(document).ready中初始化模態的東西。我沒有嘗試填充open函數以外的內容。當我回家並讓你知道的時候會試試看。感謝您的快速回復 – 2011-03-05 12:23:20
@MarkOB:查看更新 - 您是否看到過像Firebug這樣的檢測工具的結果?你會得到一個服務器錯誤?例如,MVC是否有可能找不到局部視圖? – 2011-03-05 19:43:59