Heim > Web-Frontend > js-Tutorial > Korrektur einer Schaltfläche „Mehr anzeigen/Weniger anzeigen' mit JavaScript

Korrektur einer Schaltfläche „Mehr anzeigen/Weniger anzeigen' mit JavaScript

Patricia Arquette
Freigeben: 2025-01-04 02:52:42
Original
162 Leute haben es durchsucht

Hallo Entwickler! ?‍??‍?
Ich bin ein CS-Student und lerne Javascript, weil ich Frontend-Entwickler werden möchte. Heute möchte ich ein Konzept teilen, das ich kürzlich gelernt habe, als ich mit JavaScript eine einfache Schaltfläche „Mehr anzeigen/Weniger anzeigen“ erstellt habe.
Können Sie sagen, was der Unterschied zwischen dem ersten und dem zweiten Code ist
? und Hexe eins ist wahr!!

Ich habe versucht, eine Schaltfläche zu erstellen, die die Sichtbarkeit von Text umschaltet, etwa so:
Fixing a

Fixing a

Einfacher HTML-2-Absatz, einer davon mit der Textklasse „hidden-text“
Es ist diejenige, die wir umschalten werden, und eine Schaltfläche, die die Aufgabe erledigt

<p>lorem ipsum dolor sit amet consectetur adipisicing elit. </p>
<p>



<p>css:<br>
</p>

<pre class="brush:php;toolbar:false">.hidden-text {
  display: none;
}
Nach dem Login kopieren

Ich habe alle Variablen deklariert, die ich brauche

let showButton = document.querySelector(".show-more");
let text = document.querySelector(".text");
let value = false; // Initially, the text is hidden

Nach dem Login kopieren

mein erster Code war:

showButton.addEventListener("click", (value) => {
    value = !value;
    text.classList.toggle("hidden-text");
    showButton.textContent = value ? "show less..." : "show more..."; // Update button text
});
Nach dem Login kopieren

aber das hat nicht funktioniert, der Wert war immer falsch, selbst wenn ich mit value=!value umgeschaltet habe
Nach einigem Suchen habe ich herausgefunden, warum das passiert ist

Jedes Mal, wenn auf die Schaltfläche geklickt wurde, wurde der lokale Wertparameter innerhalb der Rückruffunktion neu deklariert, wodurch der äußere Wert überschattet wurde.

Das bedeutet, dass der äußere Wert unverändert bleibt und immer falsch bleibt.
und Der lokale Wert wird innerhalb des Rückrufs umgeschaltet, aber er existiert nur während der Ausführung dieser Funktion und hat keinen Einfluss auf den äußeren Wert.

Um dieses Problem zu lösen, musste ich den Wertparameter aus dem Rückruf entfernen und direkt den äußeren Wert verwenden, der über alle Schaltflächenklicks hinweg bestehen bleibt.

let value = false; // Persistent state variable

showButton.addEventListener("click", () => { 
    value = !value; // Toggle the outer value
    text.classList.toggle("hidden-text");
    showButton.textContent = value ? "show less..." : "show more..."; // Update button text based on value
});

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKorrektur einer Schaltfläche „Mehr anzeigen/Weniger anzeigen' mit JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage