繁体   English   中英

无法在ajax成功中关闭对话框

[英]can't close dialog box within ajax success

我正在快速调用一个对话框(点击),而不是先将其设置为var。 像这样:

$(".deleteSaved").click(function() {
        save_id = $(this).attr('id');


    div="<div>Are you sure you want to delete this?</div>";
    $(div).dialog({ 
        buttons: { 
            "Delete": function() { 
                $.ajax ({
                    url:"util.php",
                    data:"q=0&f=delete&save_id="+save_id,
                    success: function(result){
                        $(this).dialog("close"); //this line is not working
                        $("#toprow"+save_id).fadeOut();
                        $("#botrow"+save_id).fadeOut();
                    }
                })
            },
            "Cancel": function() { 

                $(this).dialog("close");
            } 
        },
        modal: true,
        title: 'Delete Saved Signal',
        resizable: false
    });
});

但是当我打电话给$(this).dialog("close"); 在ajax成功函数中我得到以下错误:

Uncaught cannot call methods on dialog prior to initialization; attempted to call method 'close'

在“ cancel ”按钮内$(this).dialog("close"); 工作得很好。

如何在ajax成功调用中使用close函数?

在内部成功函数中,'this'不指向对象对象。 您可能必须将对话框对象存储在另一个变量中,如下所示

"Delete": function() { 
                 var that = this;
                    $.ajax ({
                        url:"util.php",
                        data:"q=0&f=delete&save_id="+save_id,
                        success: function(result){
                            $(that).dialog("close"); //this line will work
                            $("#toprow"+save_id).fadeOut();
                            $("#botrow"+save_id).fadeOut();
                        }
                    })
                },

你不能使用$(this)来引用它,因为你在另一个函数中,你可以这样做,

div="<div id='yourDialog'>Are you sure you want to delete this?</div>";
//...........    

     $("#yourDialog").dialog("close");

“成功”功能的范围与“删除”或“取消”功能的范围不同...

尝试使用var myDiv = $(div); 然后你可以随意调用它。 尽量减少使用$(this)来避免这种情况。

此外,只是一个快速提示,而不是$(this).attr('id')使用this.id ;)

您的$(this)在成功函数中具有不同的含义。 尝试将其分配给变量并在ajax成功函数中使用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM