这似乎是一个常见的话题,但我没有看到有人发布过这个特定的版本。
<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(“打开”)的按钮会发生什么情况无法打开。事实上,它声明:
Object doesn't support this property or method
我有一种感觉,第一次按下“使用部件”时的回调无法在PartsDialogDiv上保持dailog设置,并且它不再知道div可以在其上调用该jquery UI方法。
将它全部包装在$(document).ready()中,我不确定如何处理将div重新初始化为对话框,而不将其放在“使用部件”按钮功能中。
有没有人经历过这方面,并就如何处理这个问题提出任何好的建议或建议?
提前谢谢!
这是MVC3,但并不完全确定它是否相关。
答案(因为我发布后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>
它们是自动生成的(或者由于某种原因我盲目地包含它们)并且是不需要的。我删除了它们,一切都按预期工作。
非常感谢大家的时间!
答案 0 :(得分:0)
当发生“使用部件”按钮时,听起来像正在改变“#PartsDialogDiv”。我们需要在“// Do something”的位置看到代码才能确定,但是您可以检查该代码并根据需要进行更改。具体来说,查找.destroy()或.disable()的调用。