我正在尝试使用jQuery对话框让用户登录。我正在使用ajax和设计。用户登录后,对话框窗口应该关闭。我把对话框(“关闭”)放在bind(“ajax:success”)里面,但它不起作用我得到错误:
"cannot call methods on dialog prior to initialization; attempt to call method 'close'"
代码:
$(function(){
$(" #sign_in").click(function(){
$('<div id="box" >').dialog({
open: function(){
var that=this;
$(this).load("/users/sign_in",function(){
$("#new_user").bind("ajax:success",function(evt,data,status,xhr){
$("div#utility").html('welcome'+data.user+' |<a href="/users/sign_out" data-method="delete" rel="nofollow">sign out</a> ') ;
$(that).dialog('close');
})
})
},
title: 'Sign in '
});
});
})
有谁能帮我弄清问题是什么?
谢谢
答案 0 :(得分:0)
这是一个可能有助于解决问题的答案的问题。
jQuery: Load Modal Dialog Contents via Ajax
您还可以将对话框的选择器更改为$('#box').dialog({ ...
在您的ajax成功回调中(在您进行更改后),您可以执行$('#box').dialog('close')
编辑: 这项工作?
$(function(){
$(" #sign_in").click(function(){
$('#box').dialog({
open: function(){
$(this).load("/users/sign_in");
},
title: 'Sign in '
});
});
$("#new_user").bind("ajax:success",function(evt,data,status,xhr){
$("div#utility").html('welcome'+data.user+' |<a href="/users/sign_out" data-method="delete" rel="nofollow">sign out</a> ') ;
$('#box').dialog('close');
})
})