关于a标签的onclick事件可能会出现的问题

guardyou3
2022-04-10 / 20 评论 / 224 阅读 / 正在检测是否收录...

在对JavaScript的学习当中,实现通过a标签设置点击事件实现点击一次就显示对应div的内容,在点击一次将对应的div隐藏。
代码实现
1.首先设置对应的标签的id值便于在JavaScript中进行查找。(此处i标签引入一个图标)

<a id="setUp" href=""><i class="fa fa-cog fa-2x" style="line-height: 60px;margin-left: 50px"></i></a>
            <div class="setSelect" id="setSelecter">
                <ul>
                    <li><a href="">换肤</a></li>
                    <li><a href="">登录</a></li>
                </ul>
            </div>

2.通过设置对应div的属性(首先隐藏div,即设置display为none值)

.setSelect{
        width: 100px;
        height: auto;
        background-color: silver;
        position: absolute;
        border: black solid 1px;
        left: 91%;
        display: none;
    }
    .setSelect ul li{
        width: 100px;
        list-style-type: none;
        text-align: center;
        margin-bottom: 10px;
    }

3.注册对应事件实现点击功能

<script type="text/javascript">
        window.onload = function () {
            var setObj = document.getElementById("setUp");
            var flag = true;
            setObj.onclick = function () {
                let setSelectObj = document.getElementById("setSelecter");
                flag = !flag;
                if(flag)
                {
                    setSelectObj.style.display = "block";
                    return false;
                }
                else
                {
                    setSelectObj.style.display = "none";
                    return false;
                }
            }
        }
    </script>

注意
在a标签中,如果设置了onclick事件,那么链接的onclick事件先被执行,然后在实现href属性的动作,假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false的返回值,如果不设置返回值为FALSE,那么点击过后会实现跳转,此时会导致页面刷新,重置js代码中判断标志flag的值为TRUE,也就是说点击一次会刷新一次,flag的值永远为true,这也就是为什么隐藏的div无法成功显示出来,因为执行了href动作使页面刷新了,通过设置返回值为false让其链接失效,达到我们的需求点击一次显示隐藏的div,在点击一次隐藏div。

0

评论 (20)

取消
  1. 头像
    1
    Windows 10 · Google Chrome

    555

    回复
  2. 头像
    1
    Windows 10 · Google Chrome

    555

    回复
  3. 头像
    1
    Windows 10 · Google Chrome

    555

    回复
  4. 头像
    1
    Windows 10 · Google Chrome

    555

    回复
  5. 头像
    hdyukqztqe
    Windows 10 · Google Chrome

    看的我热血沸腾啊https://www.jiwenlaw.com/

    回复
  6. 头像
    yqtxxererk
    Windows 10 · Google Chrome

    不错不错,我喜欢看 https://www.ea55.com/

    回复
  7. 头像
    lsmzoicckl
    Windows 10 · Google Chrome

    想想你的文章写的特别好www.jiwenlaw.com

    回复
  8. 头像
    ztyaokluyl
    Windows 10 · Google Chrome

    文章的确不错啊https://www.cscnn.com/

    回复
  9. 头像
    hcjvamrjbt
    Windows 10 · Google Chrome

    《转生大作战劇場版(完整版)》动画片高清在线免费观看:https://www.jgz518.com/xingkong/136486.html

    回复
  10. 头像
    cuiafimeql
    Windows 10 · Google Chrome

    《比特(经典重制版)》欧美剧高清在线免费观看:https://www.jgz518.com/xingkong/149548.html

    回复
  11. 头像
    jbnzrtlkek
    Windows 10 · Google Chrome

    《转生大作战劇場版(完整版)》动画片高清在线免费观看:https://www.jgz518.com/xingkong/136486.html

    回复
  12. 头像
    gkvxuwgmyb
    Windows 10 · Google Chrome

    哈哈哈,写的太好了https://www.lawjida.com/

    回复
  13. 头像
    utetroaslv
    Windows 10 · Google Chrome

    作者对主题的挖掘深入骨髓,展现了非凡的洞察力和理解力。

    回复
  14. 头像
    nfgrtldnfl
    Windows 10 · Google Chrome

    若能对分论点进一步细分,结构会更立体。

    回复
  15. 头像
    gnjvsrucrc
    Windows 10 · Google Chrome

    作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。

    回复
  16. 头像
    pdyzxdjsyz
    Windows 10 · Google Chrome

    代码示例规范,注释详细,便于复现。

    回复
  17. 头像
    vrxiwnvdbd
    Windows 10 · Google Chrome

    ?总结与建议类?

    回复
  18. 头像
    quwjyuppoi
    Windows 10 · Google Chrome

    作者以非凡的视角解读平凡,让文字焕发出别样的光彩。

    回复
  19. 头像
    gwehzptdch
    Windows 10 · Google Chrome

    文章的叙述风格独特,用词精准,让人回味无穷。

    回复
  20. 头像
    qcweguocsa
    Windows 10 · Google Chrome

    这篇文章不错!

    回复