ページの変更がない HTML サイトがあります。ajax 呼び出しを使用して、ページの各位置にさまざまな要素をロードするだけです。最初にページが読み込まれた後にログイン機能を実行する必要があります (インデックスに要素が存在する必要があるため) が、$(document).ready(login) を使用すると、要素が読み込まれるたびに起動します (要素をページにロードすると、無限ループに陥ります)。インデックス ページの下部に配置する以外に (かなり壊れやすいようです)、インデックス ページの読み込みが完了した後に読み込む方法はありますか?
私のログイン機能は次のようになります。
function login ()
{
if($.cookie('employee'))
employee = $.cookie('employee');
if(employee && !employee.login)
$("div.middle").load('login.html');
else
$("div.middle").load('main.html');
}
function logout ()
{
//FIXME send a logout request to server to end session also
employee = null;
$.cookie('employee', null);
$("div.middle").load('login.html');
}
私の最初の準備完了関数は次のようになります。 //グローバル変数 var employee = new Object;
$(document).ready(function(){
$("div.leftColumn").html(buildLeftNav());
//set height of middle if height of leftColumn is less than height of middle
if($("div.leftColumn").css('height') < $("div.middle").css('height'))
$("div.center").css('height' , $('div.middle').css('height'));
//handle login and logout
$.cookie.json = true;
login();
});
説明するためにフィドルを設定しました:http://jsfiddle.net/uZVP4/