Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何关闭对话框_Jquery - Fatal编程技术网

Jquery 如何关闭对话框

Jquery 如何关闭对话框,jquery,Jquery,我有一个非常奇怪的行为,在ajax调用完成的情况下,我将关闭对话框 $.ajax({ url: "", data : { }, type : "POST", dataType : "text", cache : false, success: function(response) { // on success.. }, compl

我有一个非常奇怪的行为,在ajax调用完成的情况下,我将关闭对话框

     $.ajax({ 
        url: "",
        data     : { },
        type     : "POST",  
        dataType : "text",
        cache    : false,
        success: function(response) { // on success..
        },
        complete : function() {
             $("#dialogDiv").dialog("close");
             $("#dialogDiv").dialog("destroy");
             $("#dialogDiv").remove();
        },
        error : function(errMsg)
        {

            console.log("AJAX : submit : error");
            console.log(jsonToString(errMsg));
        }
    });

然而,我的问题是,在我的本地服务器上,它有时关闭,有时不关闭,而且很多时候它在生产服务器上不工作,我真的无法找出问题所在。在整个事件中有没有办法强制关闭窗口?或者其他什么?

检查源代码,确保没有弹出多个对话框。由于您使用的是
id
jQuery将只作用于第一个具有匹配
id
的DOM元素(因为id对于页面来说是唯一的)

如果要关闭所有对话框,我建议将
$(“.dialogDiv”)
移动到
,并使用类选择器
,例如
$(.dialogDiv”)

最后,您应该缓存选择器,或者更好地利用
链接

缓存示例:

var$dialogDiv=$('#dialogDiv”);//使用var中的$来表示——嘿,这是一个jQuery对象
$dialogDiv.dialog(“关闭”);
$dialogDiv.dialog(“销毁”);
$dialogDiv.remove();
如果您需要多次重用选择器,这将非常有用。否则,您将强制javascript为同一元素重新分析整个DOM结构

链接示例:

$("#dialogDiv").dialog("close").dialog("destroy").remove();

这是因为jQuery在执行操作后返回一个对象。在这种情况下,您可能不需要
close
remove
,因为
destroy
应该为您处理它,但如果没有它们,我就不会有太多的示例。

我找到了解决方案,非常奇怪的行为,但它正在工作,而不是cl在
complete
事件中关闭弹出窗口我确实在
done
事件中关闭了它,它正在工作

    $.ajax({ 
        url: "",
        data     : {},
        type     : "POST",  
        dataType : "text",
        cache    : false,
        success: function(response) { // on success..

        },
        complete : function() {

        },
        error : function(errMsg)
        {
            console.log("AJAX : submit : error");
            console.log(jsonToString(errMsg));
        }
    }).done(function() {
        $("#dialogDiv").dialog("close");
        $("#dialogDiv").dialog("destroy");
        $("#dialogDiv").remove();
    });

控制台中有任何错误吗?没有。控制台中没有任何错误