この関数が再び自分自身を呼び出さないようにするにはどうすればよいですか?
$(document).ready(function() {
login();
});
function login() {
$('#login').hide();
$('#pre-login button').on('click',function(event) {
$('#pre-login').hide();
$('#login').show();
$('#login :text').focus();
return false;
});
}
私には次の2つの形式があります。
<form id="pre-login"><p>Already have an account?</p><button type="submit">Login</button></form>
<form id="login">
<input type="text" placeholder="Email Address" class="login">
<input type="password" placeholder="Password" class="login"><h4><a href="#">Forgot?</a></h4>
<button type="submit" class="action">Login</button>
</form>
最初のフォームはページが読み込まれたときに表示され、2番目のフォームは非表示に設定されます。最初のフォームのログインボタンをクリックすると、2番目のフォームが表示され、最初のフォームが非表示になります。ただし、#pre-loginフォームのボタンがクリックされたときにのみ関数を呼び出すようにjQueryに指示している場合でも、2番目のフォームのログインボタンをクリックすると逆の効果が発生します。
ここで何が起こっているのか頭や尾を作ることができないので、一度呼び出されたら関数を無効にするのが最善だと思います。