【问题标题】:OnClick event to Hide and Toggle Page SectionOnClick 事件隐藏和切换页面部分
【发布时间】:2021-11-09 19:39:25
【问题描述】:

我创建了两 (2) 个部分。我想在默认情况下隐藏一个部分,其下方有一个显示“显示更多”的按钮。

类似这样的内容--- (https://www.livermoretreeremoval.com/tree-service-ulmar) 在“Ulmar Tree Services Top Sights”部分下。

如果单击该按钮,则应显示隐藏的部分,并且按钮文本应更改为“少显示”。

如果再次单击按钮,可见部分应再次隐藏,按钮文本应显示“显示更多”。

因此,隐藏时,按钮显示“显示更多”,而可见时,按钮显示“显示更少”。

下面是我的 JavaScript:

`

function toggleBlock() {
// get the block
    var myBlock = document.getElementById(‘service-area-two’);

// get the current value of the block’s display property
    var displaySetting = myBlock.style.display;

// also get the block button, so we can change what it says
    var blockButton = document.getElementById(‘Show More’);

// now toggle the block and the button text, depending on current state
    if (displaySetting == ‘block’) {
// block is visible. hide it
    myBlock.style.display = ‘none’;
// change button text
    blockButton.innerHTML = ‘Show Less’;
}
else {
// block is hidden. show it
myBlock.style.display = ‘block’;
// change button text
blockButton.innerHTML = ‘Show More’;
}
}

`

部分 ID:service-area-two 按钮名称是:ToggleButton

我知道我做错了很多事情。

我怎样才能让这个按钮工作?

【问题讨论】:

  • 我明白你想要什么,但你面临的问题是什么?您的控制台是否记录了一些错误?
  • 将代码发布为 run-sn-p。 @Gamicord
  • 正确吗? var blockButton = document.getElementById('显示更多');

标签: javascript html css function


【解决方案1】:

所以对于按钮,显示更多和显示更少不起作用是我的理解。我认为这里的错误是innerHTML。 innerHTML 表示块内的实际 HTML,例如:

button.innerHTML = '<img src="---'">'

最后,将innerHTML 更改为innerText。

【讨论】:

    【解决方案2】:

    使用隐藏属性。
    所以:

    <div hidden id="service-area-two">
        // content
    </div>
    <button id="Show More" onclick="toggleBlock()">Show more</button>
    

    JavaScript 逻辑是这样的:

    function toggleBlock() {
        var myBlock = document.getElementById("service-area-two");
    
        var blockButton = document.getElementById("Show More");
    
        if (myBlock.hidden) {
            blockButton.innerHTML = "Show Less";
            myBlock.hidden = false;
        } else {
            blockButton.innerHTML = "Show More";
            myBlock.hidden = true;
        }
    }
    

    【讨论】:

    • 我很感激。现在,我只想将这个 JavaScript 包装在一个 HTML onclick 按钮中。像这样的东西—— 我应该如何编写 HTML 来将你的 JavaScript 代码包装在按钮中?问候
    • -- 我已经应用了代码,但不知何故它不起作用。这是我要实施本准则的页面:treeremoval.ga/tree-service-ulmar/#ShowMore 您可以为我提供任何进一步的帮助、建议或帮助吗?谢谢
    • 我已经应用了代码,天哪,它就像一个魅力。非常感谢。问题现已解决
    • @Gamicord 很高兴它有帮助。您能否将我的答案标记为正确,以便 stackoverflow 现在问题已得到解答。
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2020-04-26
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2012-07-02
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多