按钮操作中带回调的JQuery UI对话框打开第二个对话框失败

时间:2011-05-17 18:04:04

标签: jquery jquery-ui jquery-ui-dialog jquery-callback

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

<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>

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

非常感谢大家的时间!

1 个答案:

答案 0 :(得分:0)

当发生“使用部件”按钮时,听起来像正在改变“#PartsDialogDiv”。我们需要在“// Do something”的位置看到代码才能确定,但​​是您可以检查该代码并根据需要进行更改。具体来说,查找.destroy()或.disable()的调用。