私のページには2つの異なるフォームがあります。ユーザーが一度に1つのフォームを表示し、ユーザーがリンクをクリックするとフォーム間を切り替えるようにします。jQueryクリックイベントは1回だけトリガーされます
これを実現するには、両方のフォームにリンクを含め、clickイベントをバインドして、ユーザーが既に表示されているもの以外のフォームを表示するようにしました。
問題は、jQueryで実装できないということです。
はここに私のHTMLです:上記のHTMLコードで
<div class="col-md-6 loginPanel">
<div class="panel panel-default myFormContainer">
<div class="panel-heading myPanelHeadingContainer">
<h3 class="panel-title">
Login
<span class="flipper">
<a href="#">Flip</a>
</span>
</h3>
</div>
<div class="panel-body">
<form>
<div class="form-group">
<label for="authCode">Authentication Code</label>
<input type="password" class="form-control" id="authCode" placeholder="Auth Code">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</div>
</div>
<div class="col-md-6 registerPanel">
<div class="panel panel-default myFormContainer">
<div class="panel-heading myPanelHeadingContainer">
<h3 class="panel-title">
Register
<span class="flipper">
<a href="#">Flip</a>
</span>
</h3>
</div>
<div class="panel-body">
<form>
<div class="form-group">
<label for="newAuthCode">New Authentication Code</label>
<input type="password" class="form-control" id="newAuthCode" placeholder="New Auth Code">
</div>
<div class="form-group">
<label for="clientSecret">Client Secret</label>
<input type="password" class="form-control" id="clientSecret" placeholder="Client Secret">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</div>
、私はspan
内部リンクを包み、それをクラスflipper
を与えています。
はここに私のjQueryのです:上記のコードで
$(document).ready(function() {
$('.registerPanel').first().hide();
var flipper1 = $('.flipper').first();
var flipper2 = $('.flipper').get(1);
flipper1.click(function() {
$('.loginPanel').first().hide();
$('.registerPanel').first().show(400);
});
flipper2.click(function() {
$('.registerPanel').first().hide();
$('.loginPanel').first().show(400);
});
});
、私は意図的にその中に何かがクリックされた場合、span
のクリックイベントが発生しますと仮定span
要素にクリックイベントをバインドさ。
また、flipper1
およびflipper2
は、2つの異なる形式に関する2つの変数を参照する2つの変数です。
最初はクリックが発生せず、イベントが発生しない場合、loginPanel
が表示されることが予想されます(そのため、私はregisterPanel
を隠しました)。
フリップリンクをクリックすると、loginPanel
が非表示になり、registerPanel
が表示されますが、registerPanel
のリンクをクリックすると何も起こりません(つまり、loginPanel
に戻ることはできません)。
誰かが何が間違っているのかを教えてください。可能であれば、良い解決策を提案してください。ありがとう!
あなたのフリッパーにIDを割り当ててみてください。#flipper1#flipper2 var flipper1 = $( '#flipper1'); var flipper2 = $( '#flipper2'); –
また、 'hide()'がイベントリスナ/ハンドラを削除している可能性がありますか?あなたは 'detach()'/'appendTo()'を試すことができますか? – OneNeptune
@AnandSiddharthは働いていました。私は.flipperのためにやったすべてのスタイリングを変更しなければならなかった。ありがとう:) –