微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bootstrap 折叠元素:在第一次点击时显示 -> 下次什么都不做

如何解决Bootstrap 折叠元素:在第一次点击时显示 -> 下次什么都不做

我有两个折叠的 div,我想在单击图像时显示它们。 当显示 div 并且我再次单击图像时,我不会再次折叠 div。

我给元素添加了折叠类

<div class="container collapse">'

然后我将 onclick 事件添加到图像以运行我的 Java Script 函数

onclick="playSoundAndShowSpoiler('http://www.url.to/soundfile.mp3',this)

函数本身看起来像

<script>            
        function playSoundAndShowSpoiler(url,obj)
        {
            new Audio(url).play();

            var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
            var collapseList = collapseElementList.map(function (collapseEl) {
            return new bootstrap.Collapse(collapseEl)
            })
        }
    </script>

关于折叠部分的剪辑来自 Bootstrap Docs,我想知道如何更改它以便折叠部分只运行一次并且不会在第二次单击图像时折叠 div。

感谢任何形式的帮助!

最好的碎片 罗尔夫

附言供参考 - 这是受影响的网站:https://schmellerling.de/indexnew.php

解决方法

纯 JavaScript

// better off with targeting element by its ID.
document.getElementById("container").addEventListener("click",function() {
    playSoundAndShowSpoiler();
},{once: true}); 

有用链接:https://caniuse.com/once-event-listener

Jquery 方法:

加载 DOM 后,使用 one 方法将处理程序绑定到元素。

function playSoundAndShowSpoiler(url,obj) {
    new Audio(url).play();

    var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
    var collapseList = collapseElementList.map(function (collapseEl) {
    return new bootstrap.Collapse(collapseEl)
    })
}

$("container").one('click',function() {
    playSoundAndShowSpoiler();
});

注意:事件处理函数只对每个元素运行一次。

有用链接:https://api.jquery.com/one/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?