JQuery用户界面对话框 - 在成功$阿贾克斯更新(这一点).dialog('接近');

参考从嵌套的AJAX“成功”函数内$(这)有问题......我知道这是一个范围内的问题,但似乎无法找到一个干净的方式关闭该对话框上更新成功。 感谢您的帮助。

$("#dialog_support_option_form").dialog({ width: 400, height: 180, bgiframe: true, autoOpen: false, modal: true, buttons: { 'Save Support Option': function(){ $.ajax({ type: 'POST', url: "support_options/create_support_option.php", data: $(this).find('form').serialize(), success: function(data){ $("#list_support_options").html(data); $(this).dialog('close'); } }); }, 'Cancel': function(){ $(this).dialog('close'); } }, close: function(){ $(this).find('input').val(''); } });

--------------解决方案-------------

您应该使用AJAX选项context: $(this),设置范围为回调到选定的元素。

你需要有一个变量,像这样的副本:

var dlg = $(this);
$.ajax({
type: 'POST',
url: "support_options/create_support_option.php",
data: $(this).find('form').serialize(),
success: function(data){
$("#list_support_options").html(data);
dlg.dialog('close');
}
});

由于this是在返回不同的环境中,你需要捕获它,并将它传递到封闭:)

与试用$.proxy()

success: $.proxy(function(data){
$(this).dialog('close');
}, this);

你可以“通”的范围从“自上而下”与它的函数

分类:jQuery的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.271 (s). 10 q(s)