jquery toggle - bei click, soll nur eins aufgehen - wie? Lösung 2

Hallo, Ich probiere gerade einen Show more/Show less Button, der funktioniert auch, aber wenn ich den dann mehrmals verwende, dann gehen bei einem klick auf einen Button, alle divs mit diesem toggle auf. Ich habs mit (this) probiert, aber ich hab das, glaub ich, falsch angewendet. Außerdem habe ich gelesen, dass "this" nicht zu jQuery gehört...mir scheint es wird aber dauernd verwendet?!? Kann mir bitte jemand sagen, wie ich den einzelnen Button anspreche, ohne dass ich jeden einzelnen toggle anders benennen muss?

Der hier verwendete Code

<!doctype html> <html lang="de"> <head> <title></title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <style> .expand-button { cursor: pointer; display: block; width: 50%; margin-top: 1rem; margin-left: auto; margin-right: auto; border: 4px solid #005858; border-radius: 3px; background-color: darkcyan; color: white; font-size: 1rem; padding: 0.5rem; } .expand-button:hover, .expand-button:active, .expand-button:focus { background-color: #007272; } .special-text { position: relative; max-height: 50px; /*change height of fading text here*/ overflow: hidden; transition: max-height .7s ease; /*change speed of expand/collapse here*/ } .special-text.-expanded { max-height: 100vh; } .special-text:not(.-expanded)::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); } </style> </head> <body> <div class="container"> <div class="banner_border"> <div class="banner_content"> <div class="banner_content_main"> <p>TITLE</p> <button class="expand-button">OPEN</button> <div class="special-text"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed dot eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor. Reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt inre culpa qui officia deserunt mollit anim id est laborum. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed dot eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor. Reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt inre culpa qui officia deserunt mollit anim id est laborum. </p> </div> <p>TITLE</p> <button class="expand-button">OPEN</button> <div class="special-text"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed dot eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor. Reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt inre culpa qui officia deserunt mollit anim id est laborum. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed dot eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor. Reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt inre culpa qui officia deserunt mollit anim id est laborum. </p> </div> </div> </div> </div> </div> </body> </html> <script> $(".expand-button").on("click",function(){ $plus=$(this).next(); $plus.toggleClass("-expanded"); if ($plus.hasClass("-expanded")) { $(this).html("CLOSE"); } else { $(this).html("OPEN"); } }); </script>

Add Comment

* Required information
1000
Drag & drop images (max 3)
Powered by Commentics

Comments

No comments yet. Be the first!