2012-02-22 20 views
1

私は、HTMLのダイアログの空のdivコンテナを持たずにjquery UIダイアログを作成しています。何らかの理由で、グローバル変数は他のjavascript関数(元のjavascript関数のほかに)で認識されません。jquery ui dialogグローバル変数

var $signOutDialog = null; 


function createDialog() { 
    var $signOutDialog = $("<p></p>").dialog({ 
     resizable: false, 
     title: 'Sign Out', 
     width: 830, 
     autoOpen: false, 
     modal: true, 

    }); 
} 

そして、私は$ .ajax成功デリゲートの結果として呼び出される別のjavascript関数を持っています。この関数ではグローバル変数$signOutDialogがNULLです。

function test2() { 
    $signOutDialog.dialog('close'); 
} 

空のhtml要素としてダイアログを表示せずにjquery UIダイアログを閉じるための既知の解決策はありますか?

答えて

2

関数の$ signOutDialogより前のvarを削除するには、関数のスコープ内のローカル変数として関数内で再び定義します。

+0

が動作します。ありがとう!! – aporat

1

グローバルな$ signOutDialogは、通常のjavascript変数です。

createDialog内の$ signOutDialogは、前のものと異なります。

したがって、test2メソッドでは、nullで ".dialog( 'close')しようとします。