Ich erstelle ein Dropdown-Akkordeon-Menü mit jQuery. Ich habe schon an einigen Versionen gearbeitet und mein Skript kann gut funktionieren, bevor ich die Bildumschaltung hinzufüge.jQuery Toggle Text und Bild funktioniert nicht
Aber nachdem ich das Bild Toggle-Skript hinzugefügt habe, funktioniert der ganze Toggle nicht gut.
$(function() {
$('.showmore').click(
function() {
$(this).closest("div").next(".dropdown").toggle();
$(this).find('i').toggleClass('arrow-down arrow-up');
if ($(this).text() == "Show") {
$(this).text("Hide");
} else {
$(this).text("Show");
}
$(this).closest("div").next(".dropdown").toggleClass('selected');
}
)
})
.title {
background-color: #CCCCCC;
}
.sprite {
background-image: url(https://image.ibb.co/bHTF8R/pinkarrow.png);
background-repeat: no-repeat;
display: block;
}
.arrow-down {
width: 9px;
height: 6px;
background-position: -9px 0;
}
.arrow-up {
width: 9px;
height: 6px;
background-position: 0 0;
}
.arrow-down,
.arrow-up {
display: inline-block;
padding-left: 5px;
}
.dropdown {
display: none;
}
.selected {
border: 4px solid #CCCCCC;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="content">
<div class="title">
<span class="showmore">Show<i class="sprite arrow-down"></i></span>
</div>
<!--End of class Title-->
<div class="dropdown">
XXXXXXXXXX Content XXXXXXXXXX
</div>
</div>
Also, was ich will zu tun ist, dass: Ursprünglich wird der Inhalt ausgeblendet werden, mit einem Titel „Show“ mit Pfeil nach unten Symbol angezeigt wird. Wenn ich auf den Titel klicke, wird der versteckte Inhalt angezeigt und der Titel ändert sich in "Ausblenden" und mit Pfeil nach oben.
Ursprünglich kann ich den Toggle mit diesen Text erreichen, aber nachdem ich versucht habe, das Bild Toggle-Skript hinzuzufügen, funktioniert es nicht.
$(this).find('i').toggleClass('arrow-down arrow-up');
Jeder kann mit mir Ihre Lösung/Meinung hier teilen? Vielen Dank für Ihre Zeit beim Lesen meiner Frage!
Eine Geige ist großartig, aber bitte geben Sie alle relevanten Code in der Frage. Wenn JsFiddle ausfällt, wäre deine Frage nicht zu beantworten gewesen. Was das Problem betrifft, so erscheint es ziemlich offensichtlich, wenn Sie das Snippet, das ich bearbeitet habe, in der Frage ausführen und auf "Zeigen" klicken ... –
Ihre Browser-Konsole sagt Ihnen eine Fehlermeldung. – David
@RoryMcCrossan Vielen Dank für Ihre Bearbeitung und Bedenken. Ich weiß nicht wirklich, wie man den Code hier gut platziert, also habe ich einfach ein jsFiddle benutzt. Nochmals vielen Dank für Ihre Erinnerung. – Sammi