Javascript jQuery UI对话框错误:b(“”)。未定义addClass(“UI小部件覆盖”)

Javascript jQuery UI对话框错误:b(“”)。未定义addClass(“UI小部件覆盖”),javascript,jquery,jquery-ui,dialog,widget,Javascript,Jquery,Jquery Ui,Dialog,Widget,我有下面的代码用于包含下拉字段的a对话框 KPMS.ServiceRequests.Status = { showOptions : function(requestId, userId, requestType) { var url = BASE_URL+'service_requests/status_options/'; $("#dialog-modal").dialog("destroy"); $("#dialog-modal").load(url, {"r

我有下面的代码用于包含下拉字段的a对话框

KPMS.ServiceRequests.Status = {

 showOptions : function(requestId, userId, requestType) {
  var url = BASE_URL+'service_requests/status_options/';

        $("#dialog-modal").dialog("destroy");
  $("#dialog-modal").load(url, {"request_id": requestId, "user_id": userId, "request_type":requestType}).dialog(
   {
    modal: true,
    title: "Update Status",
    buttons: {
     Cancel : function() {
      $(this).dialog('close');
     },
     Update: function() {
      alert(1);
     }
    }
   }
  );    
 }
}
有一个定位标记用于填充对话框

<a onclick="KPMS.ServiceRequests.Status.showOptions(9, 11, 'SR'); return false;" title="Update status" href="http://localhost/kitco/pms/#9"><img alt="[E]" title="Update" src="http://localhost/kitco/pms/images/edit.png"></a>
我的问题是,当我第一次单击该链接时,对话框正在正确填充。 然后我用“取消”按钮关闭对话框,然后再次单击链接打开对话框并关闭它。 第三次点击链接时,我看到下面的Javascript错误,对话框没有打开

Error: b("<div></div>").addClass("ui-widget-overlay") is undefined
Source File: http://localhost/kitco/pms/js/jquery-ui-1.8rc3.custom.min.js
Line: 199
如何解决这个问题?

它真的是说b吗?这不应该是$或jQuery吗

EDIT:nevermind,这是一个内部jQuery调用,因此解释了b。b应该是jQuery对象var b=this的别名,因此这意味着div创建正在工作,但addClass没有/正在返回未定义

您是否以application/xhtml+xml的形式发送文档?在使用XTML而不是HTML时,我对jQuery1.4和jQueryUI1.8有过很多了解。只是一种预感。

它真的是说b吗?这不应该是$或jQuery吗

EDIT:nevermind,这是一个内部jQuery调用,因此解释了b。b应该是jQuery对象var b=this的别名,因此这意味着div创建正在工作,但addClass没有/正在返回未定义


您是否以application/xhtml+xml的形式发送文档?在使用XTML而不是HTML时,我对jQuery1.4和jQueryUI1.8有过很多了解。只是一种预感。

为什么您一直在破坏和重建对话框?为什么不只构建一次对话框并加载/更改对话框div的内容?我认为这应该可以解决问题

为什么你一直在破坏和重建对话框?为什么不只构建一次对话框并加载/更改对话框div的内容?我认为这应该解决问题

您应该使用jQuery的非最小化版本来帮助调试。另外,尝试使用firebug之类的调试器或IE8内置的调试器来跟踪调用堆栈。此外,请尝试使用firebug之类的调试器或IE8内置的调试器来跟踪调用堆栈。我认为它可能会实现我以前使用destroy尝试过的技巧,并发现此方法更好。我认为它可能实现我以前使用destroy尝试过的技巧,并且发现此方法更好