jQueryUI模态公开事件和MVC.NET导致错误“.dialog不是一个函数”
我希望有人可以帮助,因为我在我的智慧结束与此。我想要做的是这个。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 }
我想通了。包含在部分视图中的是对创建视图时自动添加的jQuery库的第二次调用。另外,它是版本1.4.4,而我在_Layout页面中直接使用了Google的1.5.1版本。由于两个版本之间存在冲突,第二个jQuery库显然打破了功能。直到我看到FireBug控制台,我才注意到1.4.4库的第二次加载。
感谢所有您的帮助,感觉好像有点白痴,但教训了解到.....现在
可以试试这个,但我不知道
$('#dialogs').dialog({
var self = this;
open: function() {
$(self).load("AdditionalContent", { itemName: itemName }, function() {
alert("This happened");
});
},
这不起作用。你不能在对象文字中声明一个像这样的变量。 – 2011-03-05 03:07:28
我明白你要去哪里了,但即使通过在$('#dialogs')中使用DIV的实际名称,错误依然会呈现出来。 – 2011-03-05 12:25:13
@马克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