1

这似乎是一个常见的话题,但我还没有看到有人发布这个特定版本。

<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,但不完全确定它是否相关。

回答(因为我要在发布此问题 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>

它们是自动生成的(或者我出于某种原因盲目地包含它们)并且不需要它们。我删除了它们,一切都按预期工作。

非常感谢大家的时间!

4

1 回答 1

0

当“使用部件”按钮单击发生时,听起来有些东西正在改变“#PartsDialogDiv”。我们需要查看代码来代替“// 做某事”来确定,但您可以检查该代码并根据需要进行更改。具体来说,查找对 .destroy() 或 .disable() 的调用。

于 2011-05-17T18:54:33.297 回答