クリック時に表示されるいくつかの異なるものが必要な場合、ナビゲーションを作成しています。ただし、一度に表示できるタブは 1 つだけです。私はjqueryのプロではないので、誰かが私が間違ったことを教えてくれることを望んでいましたか?
サイトに入ったときに表示されるログインボックスが必要ですが、新しいユーザーをプッシュすると、ログインボックスが上にスライドし、次に新しいユーザーボックスが下にスライドするはずです。
HTML
<div class="nav">
<a id="logmein" href="#">login</a>
<a id="createme" href="#">new user</a>
<div id="logmein-box">logmein</div>
<div id="createme-box">createme</div>
</div>
CSS
.nav {width:600px; height:500px; background-color:#F60;}
#logmein-box {display:none; width:400px; height:400px; background-color:#F20;}
#createme-box {display:none; width:400px; height:400px; background-color:#567;}
Jクエリ
$("#logmein").click(function(e) {
e.preventDefault();
$(".logmein-box").slideToggle(200);
if(this).hasClass("test");
return;
$(this).addClass("test");
$(".createme-box").hide();
});
コードペンも作成しました-フィドルはオフラインでした。
http://codepen.io/anon/pen/mHGbJ
編集:私はこのコードを使用することになります-同じ出力でよりスマートなアプローチを短くすることはできますか?
$('#login-slide').click(function (e) {
e.preventDefault();
if (!$(this).hasClass("selected")) {
$('#user-box').slideUp(function () {
$('#login-slide').addClass('selected');
$('#user-slide').removeClass('selected');
$('#login-box').slideDown();
});
}
});
//here is 2 buttons because i need to enter new user from two buttons.
$('#user-slide, .lab-key-continue-btn').click(function (e) {
e.preventDefault();
if (!$(this).hasClass("selected")) {
$('#login-box').slideUp(function () {
$('#user-slide').addClass('selected');
$('#login-slide').removeClass('selected');
$('#user-box').slideDown();
});
}
});
});
選択したクラスは、ナビゲーション ボタンの背景色のためのものなので、どれがアクティブかを確認できます。