>  기사  >  웹 프론트엔드  >  a标签 href onclick调用函数的问题_html/css_WEB-ITnose

a标签 href onclick调用函数的问题_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 11:47:381367검색

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        body        {            margin: 0 auto;            padding: 0;        }        a:focus        {            outline: none;        }        #pn        {            background: #e8e8e8;            width: 600px;            display: block;            margin: 0 auto;            padding: 5px;            font-size: 9pt;            height: auto;        }        .slide        {            margin: 0;            padding: 0;            width: 600px;            border-top: solid 4px gray;            margin: 0 auto;        }        .btn-slide        {            background: gray;            text-align: center;            width: 120px;            height: 30px;            padding: 10px 10px 0 0;            margin: 0 auto;            display: block;            color: #fff;            text-decoration: none;        }    </style>    <script type="text/javascript">        function showdiv() {            document.getElementById("hpn").style.display = "block";            //         document.getElementById("pn").style.height='80px';            document.getElementById("strHref").href = "javascript:hidediv();";            document.getElementById("strHref").innerHTML = "收起-";        }        function hidediv() {            document.getElementById("hpn").style.display = "none";            //          document.getElementById("pn").style.height='60px';            document.getElementById("strHref").href = "javascript:showdiv();";            document.getElementById("strHref").innerHTML = "更多选项+";        }    </script></head><body>    <div>        <div id="pn">            <p>                手机 - 商品筛选</p>            <p>                网络: 移动4G(TD-LTE ) 联通4G(TD-LTE) 联通3G(WCDMA)            </p>            <div id="hpn" style="display: none">                <p>                    价格: 5000以上 4000-4999 3000-3999 2000-2999                </p>                <p>                    特点: JDPhone计划 "0"元购机 防水 长待机 1080P全高清屏                </p>            </div>        </div>        <p class="slide">            <a href="javascript:showdiv();"  id="strHref" class="btn-slide">更多选项+</a></p>    </div></body></html>

上面这样调用可以执行showdiv()

但是用onclick如下就不能执行,这是为什么呢?求解.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        body        {            margin: 0 auto;            padding: 0;        }        a:focus        {            outline: none;        }        #pn        {            background: #e8e8e8;            width: 600px;            display: block;            margin: 0 auto;            padding: 5px;            font-size: 9pt;            height: auto;        }        .slide        {            margin: 0;            padding: 0;            width: 600px;            border-top: solid 4px gray;            margin: 0 auto;        }        .btn-slide        {            background: gray;            text-align: center;            width: 120px;            height: 30px;            padding: 10px 10px 0 0;            margin: 0 auto;            display: block;            color: #fff;            text-decoration: none;        }    </style>    <script type="text/javascript">        function showdiv() {            document.getElementById("hpn").style.display = "block";            //         document.getElementById("pn").style.height='80px';            document.getElementById("strHref").href = "javascript:hidediv();";            document.getElementById("strHref").innerHTML = "收起-";        }        function hidediv() {            document.getElementById("hpn").style.display = "none";            //          document.getElementById("pn").style.height='60px';            document.getElementById("strHref").href = "javascript:showdiv();";            document.getElementById("strHref").innerHTML = "更多选项+";        }    </script></head><body>    <div>        <div id="pn">            <p>                手机 - 商品筛选</p>            <p>                网络: 移动4G(TD-LTE ) 联通4G(TD-LTE) 联通3G(WCDMA)            </p>            <div id="hpn" style="display: none">                <p>                    价格: 5000以上 4000-4999 3000-3999 2000-2999                </p>                <p>                    特点: JDPhone计划 "0"元购机 防水 长待机 1080P全高清屏                </p>            </div>        </div>        <p class="slide">            <a href="#"  id="strHref" class="btn-slide" onclick="showdiv()">更多选项+</a></p>    </div></body></html>


回复讨论(解决方案)

第二种:
你在点击的时候,给a标签的href添加了URL了,然后就执行了hidediv();方法,所以,它是很快的显示又隐藏了

其实这个不不用写成两个方法,你就写一个方法,然后方法内判断元素是显示还是隐藏就可以了
以下是我给你提供的代码:
<script> <br /> function showdiv(info) { <br /> var $e = $("#hpn"); <br /> if (!$e.is(":visible")) { <br /> $e.show(); <br /> $("#" + info).html("收起-"); <br /> }else { <br /> $e.hide(); <br /> $("#" + info).html("更多选项+"); <br /> } <br /> } <br /> </script>


    

        

            


                手机 - 商品筛选
            


            


                网络: 移动4G(TD-LTE ) 联通4G(TD-LTE) 联通3G(WCDMA)
            


            

                


                    价格: 5000以上 4000-4999 3000-3999 2000-2999
                


                


                    特点: JDPhone计划 "0"元购机 防水 长待机 1080P全高清屏
                


            

        

        


           
更多选项+
        


    



添加了没有用啊..= =这真不是特别懂..

第二种:
你在点击的时候,给a标签的href添加了URL了,然后就执行了hidediv();方法,所以,它是很快的显示又隐藏了

其实这个不不用写成两个方法,你就写一个方法,然后方法内判断元素是显示还是隐藏就可以了
以下是我给你提供的代码:
<script> <br /> function showdiv(info) { <br /> var $e = $("#hpn"); <br /> if (!$e.is(":visible")) { <br /> $e.show(); <br /> $("#" + info).html("收起-"); <br /> }else { <br /> $e.hide(); <br /> $("#" + info).html("更多选项+"); <br /> } <br /> } <br /> </script>


    

        

            


                手机 - 商品筛选
            


            


                网络: 移动4G(TD-LTE ) 联通4G(TD-LTE) 联通3G(WCDMA)
            


            

                


                    价格: 5000以上 4000-4999 3000-3999 2000-2999
                


                


                    特点: JDPhone计划 "0"元购机 防水 长待机 1080P全高清屏
                


            

        

        


           更多选项+
        


    


谢谢,感谢方法,但我主要还是不懂那个onclick事件怎么修改才能正确显示..

这样

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        body        {            margin: 0 auto;            padding: 0;        }        a:focus        {            outline: none;        }        #pn        {            background: #e8e8e8;            width: 600px;            display: block;            margin: 0 auto;            padding: 5px;            font-size: 9pt;            height: auto;        }        .slide        {            margin: 0;            padding: 0;            width: 600px;            border-top: solid 4px gray;            margin: 0 auto;        }        .btn-slide        {            background: gray;            text-align: center;            width: 120px;            height: 30px;            padding: 10px 10px 0 0;            margin: 0 auto;            display: block;            color: #fff;            text-decoration: none;        }    </style>    <script type="text/javascript">        function showdiv() {            document.getElementById("hpn").style.display = "block";            document.getElementById("strHref").innerHTML = "收起-";			document.getElementById("strHref").onclick=hidediv;        }        function hidediv() {            document.getElementById("hpn").style.display = "none";            document.getElementById("strHref").innerHTML = "更多选项+";		document.getElementById("strHref").onclick=showdiv;        }    </script></head><body>    <div>        <div id="pn">            <p>                手机 - 商品筛选</p>            <p>                网络: 移动4G(TD-LTE ) 联通4G(TD-LTE) 联通3G(WCDMA)            </p>            <div id="hpn" style="display: none">                <p>                    价格: 5000以上 4000-4999 3000-3999 2000-2999                </p>                <p>                    特点: JDPhone计划 "0"元购机 防水 长待机 1080P全高清屏                </p>            </div>        </div>        <p class="slide">            <a href="javascript:;"  id="strHref" class="btn-slide" onclick="showdiv();return false">更多选项+</a></p>    </div></body></html>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.