私はslideUp/downを使用してコンテンツを表示したり隠したりして、別のコンテンツを開くときに目に見えるコンテンツを閉じるように書きました。これは、コンテンツをクリックすることで閉じるようになるまで動作し、すぐに再度開きます。jQueryの停止機能が2回実行されています
あなたがスライドアップコードで、あなたがthis
要素を扱っている次の兄弟more_details
、作業しているコードの下のスライドでHTML
<ul class="contents">
<li>
while($results->fetch()){
<div class="details">text</div>
<div class="more_details">more text</div>
}
</li>
</ul>
jQueryの
$("#results").on("click", ".details", function() {
$(".open").slideUp(600, function() {
$(".open").css("display", "none").removeClass("open");
});
if ($(this).hasClass("open")) {
$(this).slideUp(600, function() {
$(this).css("display", "none").removeClass("open");
});
} else {
$(this).next(".more_details").slideDown(600, function() {
$(this).css("display", "show").addClass("open");
});
}
});
あなたの開閉は左右対称ではありません –
また、HTMLのサンプルを共有することができます。あなたは 'details'を閉じていますが、' more_details'を開いてください – gurvinder372
@ gurvinder372 OPのコードは正しいです - それはレイアウトのために見えにくいですが。私はインデントを修正しました。 –