【发布时间】:2011-05-18 06:03:00
【问题描述】:
这似乎是一个常见的话题,但我还没有看到有人发布这个特定版本。
<script>
$(document).ready(function() {
$("#somebutton").click(function() {
$.get("someurl", function(data){
$("#PartsDialogDiv").html(data);
$("#PartsDialogDiv").dialog("open");
});
});
$("#PartsDialogDiv").dialog({
autoOpen: false,
width: 600,
resizable: false,
modal: true,
buttons: {
"Use Part": function() {
$.get("someurl", function(data){
$("#AnotherDIV").html(data);
});
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
});
</script>
<div id="PartsDialogDiv"></div>
<div id="AnotherDIV"></div>
当我在执行“使用部件”按钮操作后按下调用 .dialog("open") 的按钮时会发生什么,它无法打开。事实上,它指出:
Object doesn't support this property or method
我感觉第一次按下“Use Part”时的回调未能保留 PartsDialogDiv 上的 dailog 设置,并且它不再知道 div 可以调用该 jquery UI 方法。
由于它全部包含在 $(document).ready() 中,我不确定如何在不将其放入“使用部分”按钮功能的情况下将该 div 重新初始化为对话框。
有没有人经历过这种情况并有任何关于如何处理这种情况的好提示或建议?
提前谢谢你!
这是 MVC3,但不完全确定它是否相关。
ANSWER(因为在发布此问题后的 8 小时内我无法回答自己的问题): 我设法解决了它。 Jen 和 George Cummins 都让我得出这样的结论,即我的片面观点很糟糕。
在我的部分观点中,我包含了以下脚本:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"
type="text/javascript"></script>
它们是自动生成的(或者我出于某种原因盲目地包含它们)并且不需要它们。我删除了它们,一切都按预期工作。
非常感谢大家的宝贵时间!
【问题讨论】:
-
我不确定我是否正确理解上下文。您可以发布调用 .dialog("open"); 的代码/单击事件吗? ?另外,调用 .dialog("close");不会破坏 DOM 元素,也不会破坏该元素上对话框小部件的任何实例。
-
添加了附加代码。我知道你的意思是 dialog("close") 不会破坏 DOM。但如果我删除回调,它工作正常。如果我在按钮操作中有回调,它会给出错误,我假设回调删除了对话框元素。什么的。
标签: jquery jquery-ui jquery-ui-dialog jquery-callback