Hello developers! ??????
I'm a CS student and im learning javascript because i want to be a frontend developer , and today I wanted to share a concept I recently learned while making a simple "Show More / Show Less" button using JavaScript.
can you tell what the diffrence between the first code and the second
and witch one is true !!
I was trying to create a button that toggles the visibility of text, like this:
simple html 2 paragrah one of them with the class of text hidden-text
it the one we will toggle and a button that will do the job
<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; }
ive declared all the variable i need
let showButton = document.querySelector(".show-more"); let text = document.querySelector(".text"); let value = false; // Initially, the text is hidden
my first code was :
showButton.addEventListener("click", (value) => { value = !value; text.classList.toggle("hidden-text"); showButton.textContent = value ? "show less..." : "show more..."; // Update button text });
but this didn't work the value was always false even that i swithced using value=!value
after some search i found out why this happend
Every time the button was clicked, the local value parameter inside the callback function was being redeclared, which shadows the outer value.
that means that The outer value remains unchanged, always staying false.
and The local value is toggled inside the callback, but it only exists during that function's execution and doesn’t affect the outer value.
To solve this, I needed to remove the value parameter from the callback and directly use the outer value that persists across button clicks.
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 });
The above is the detailed content of Fixing a 'Show More / Show Less' Button with JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Java and JavaScript are different programming languages, each suitable for different application scenarios. Java is used for large enterprise and mobile application development, while JavaScript is mainly used for web page development.

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

CommentsarecrucialinJavaScriptformaintainingclarityandfosteringcollaboration.1)Theyhelpindebugging,onboarding,andunderstandingcodeevolution.2)Usesingle-linecommentsforquickexplanationsandmulti-linecommentsfordetaileddescriptions.3)Bestpracticesinclud

The following points should be noted when processing dates and time in JavaScript: 1. There are many ways to create Date objects. It is recommended to use ISO format strings to ensure compatibility; 2. Get and set time information can be obtained and set methods, and note that the month starts from 0; 3. Manually formatting dates requires strings, and third-party libraries can also be used; 4. It is recommended to use libraries that support time zones, such as Luxon. Mastering these key points can effectively avoid common mistakes.

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

Java and JavaScript are different programming languages. 1.Java is a statically typed and compiled language, suitable for enterprise applications and large systems. 2. JavaScript is a dynamic type and interpreted language, mainly used for web interaction and front-end development.
