2015-11-10 143 views
0

编辑 - 我没有正确定位对话框。原始代码有效。关闭ajax回调的jQuery对话框

我想关闭.ajax成功的jqueryui对话框。

我有一个调用的方法阿贾克斯以下时,完全...

function reserved(d) { 
     $(".itemdetail").dialog("close"); 
} 

这将产生以下错误...

不能调用在初始化之前对话框的方法;试图 调用方法“关闭”

我已经研究过,但没有找到合适的解决方案。

+2

这通常意味着.itemdetail从来没有$(“。itemdetail”)。dialog();呼吁它为了初始化它。你确定这个对话框是开放的吗?如果是的话,那里有多个.itemdetail元素,其中一个可能没有与之关联的对话框? – AtheistP3ace

+0

对话框打开,所以是的,我可以看到它。我从一个干净的页面开始(刷新),单击打开对话框的元素,单击发送ajax请求的元素,然后在回调中收到错误。 – tintyethan

+0

页面上是否有多个.itemdetail? – AtheistP3ace

回答

0

您可以检查它是否已初始化并打开,然后执行特定操作。

function reserved(d) { 
     if($(".itemdetail").hasClass('ui-dialog-content') && $(".itemdetail").dialog("isOpen")) 
       $(".itemdetail").dialog("close"); 
} 
+0

否 - 未初始化。不知道如何处理,但。该对话框正在屏幕上显示。 – tintyethan

+0

我没有正确定位对话框。原始代码有效。谢谢你的帮助。 – tintyethan