JQueryとJQuery UIを使用して、アコーディオンをベースにした小さなWebアプリケーションを構築しています。私はアコーデオンの論理を理解しましたが、私が望む結果を得るためにいくつかの問題を抱えています。クリックしたときにすべてのタブが崩壊するようにしたいが、どうやってそれを行うのかは分からない。別のアコーディオンタブを開く前にすべてのアコーディオンタブを切り替えます(一度に1つだけ開く)
Googleは私を手伝ってくれなかった。ここでも何も見つかりませんでした。ここで
は私のHTMLです:
<button class="accordion">About</button>
<div class="panel">
<p>Blah 1</p>
</div>
<button class="accordion">Contact</button>
<div class="panel">
<form>
<label>Full Name</label>
<input type="text" />
<label>E-mail Address</label>
<input type="email" />
</form>
</div>
マイCSS:
button.accordion {
background-color: #336699;
background: linear-gradient(-90deg, #fff, #336699, #fff);
color: #fff;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: center;
outline: none;
font-size: 15px;
transition: 0.4s;
}
button.accordion:not(:last-child) {
margin-bottom: 10px;
}
button.accordion .active,
button.accordion:hover {
background-color: #555;
}
div.panel {
padding: 0 18px;
background-color: white;
max-height: 0;
overflow: hidden;
transition: 0.6 ease-in-out;
opacity: 0;
}
div.panel.show {
opacity: 1;
max-height: 500px;
}
div.column {
float: left;
width: 300px;
}
そして最後に、私はJQuery:
$(function() {
$('.accordion').on('click', function() {
// Something here, maybe?
$(this).toggleClass('active', 400);
$(this).next().toggleClass('show', 400);
});
});
私は閉じるために、コールバックの内側に何かを入れてみてくださいそれらのすべてはすぐに実行され、タブはまったく開きません。誰かが私に正確に何が起こっているの説明を与えてもらえますか?
の下に使用し、あなたの期待される結果を達成するために。一度に1つしか開いていないので、別のものをクリックすると、その1つが閉じます。 – Ellis