首頁 >web前端 >js教程 >使用 JavaScript 修復'顯示更多/顯示更少”按鈕

使用 JavaScript 修復'顯示更多/顯示更少”按鈕

Patricia Arquette
Patricia Arquette原創
2025-01-04 02:52:42187瀏覽

開發者您好! ??‍??‍?
我是一名電腦科學學生,正在學習javascript,因為我想成為前端開發人員,今天我想分享一個我最近在使用JavaScript 製作簡單的「顯示更多/顯示更少」按鈕時學到的概念。
你能說出第一個代碼和第二個代碼之間的差異嗎
女巫一號是真的! !

我試著建立一個切換文字可見性的按鈕,如下所示:
Fixing a

Fixing a

簡單的 html 2 段落,其中一個具有文字隱藏文字類別
這是我們要切換的按鈕和一個可以完成這項工作的按鈕

<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;
}

我聲明了我需要的所有變數

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

我的第一個程式碼是:

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

但這不起作用,即使我使用 value=!value 進行切換,該值也始終為 false
經過一番搜索,我發現了為什麼會發生這種情況

每次按一下按鈕時,回呼函數內的本機值參數都會被重新聲明,這會隱藏外部值。

這表示外部值保持不變,始終保持 false。
本地值在回調內部切換,但它僅在該函數執行期間存在,不會影響外部值。

為了解決這個問題,我需要從回呼中刪除 value 參數,並直接使用在點擊按鈕時持續存在的外部值。

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
});

以上是使用 JavaScript 修復'顯示更多/顯示更少”按鈕的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn