Jquery 如何关闭对话框
我有一个非常奇怪的行为,在ajax调用完成的情况下,我将关闭对话框Jquery 如何关闭对话框,jquery,Jquery,我有一个非常奇怪的行为,在ajax调用完成的情况下,我将关闭对话框 $.ajax({ url: "", data : { }, type : "POST", dataType : "text", cache : false, success: function(response) { // on success.. }, compl
$.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();
});
控制台中有任何错误吗?没有。控制台中没有任何错误