美文网首页
如何实现点击某个选项,该选项对应内容显示

如何实现点击某个选项,该选项对应内容显示

作者: houxnan | 来源:发表于2019-11-28 11:04 被阅读0次

我们经常会遇到点击某个选项,出现相应选项内容的情况,该如何实现这种功能呢?有以下几个方法:

 第一种方法:

用原生js和display:none来实现,给每一个选项绑定一个click事件,click事件用if、else判断,被选中了,就让display:block,没被选中就选display:none。

具体实现如图:

代码如下:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<style>

    .code{

        display: none;

    }

</style>

<body>

    <div><input type="radio" name="sname" onClick="SenFe_Code(this,SenFe_1)">标题一</div>

    <div id="SenFe_1" class="code">提示内容一</div>

    <div><input type="radio" name="sname" onClick="SenFe_Code(this,SenFe_2)">标题二</div>

    <div id="SenFe_2" class="code">提示内容二</div>

    <script>

        function SenFe_Code(sname,id){

            if(sname.checked){

                id.style.display = "block";

            }else{

               id.style.display = "none";

            }

        }

    </script>

</body>

</html>

但是这段代码存在一个很明显的问题,如果选中之后再点击一次,应该时取消选中,但是这段代码无法实现这个功能,如何实现呢?可以再在script中加上一段代码:

 $(':radio').click(function () {

              var r = $(this).attr("name");

               $(":radio[name=" + r + "]:not(:checked)").attr("tag", 0);

               if ($(this).attr("tag") == 1) {

                $(this).prop('checked',false);

                    $(this).attr("tag", 0);

                }

                else {

                    $(this).attr("tag",1);

                }

      });

如图:

但是加上这段代码后仍然存在一个问题:取消选中后,选项对应内容并没有收起来,如何收起来呢?

当被选中元素的checked值为false时,让相应id内容的css设置成display:none即可收起内容。

在$(this).prop('checked',false)的后面加上.$('#id').css("display","none");或者是.$('#id').toggle();均可。

相关文章

网友评论

      本文标题:如何实现点击某个选项,该选项对应内容显示

      本文链接:https://www.haomeiwen.com/subject/auwvwctx.html