0

jQueryダイアログを使用してユーザーをサインインさせようとしています.ajaxとdeviseを使用しています。ユーザーがサインインすると、ダイアログ ウィンドウが閉じます。bind("ajax:success") 内に dialog("close") を配置しましたが、機能せず、エラーが発生します。

"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 '
        });
   });
}) 

問題が何であるかを理解するのを手伝ってくれる人はいますか?
ありがとう

4

1 に答える 1

0

ここにあなたの問題に役立つかもしれない答えがある質問があります.

jQuery: 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');
   })
}) 
于 2013-05-09T13:55:47.377 に答える