为了账号安全,请及时绑定邮箱和手机立即绑定

求大神解释下代码,有点纠结

以下两段JAVASCRIPT代码(以横线隔开好区分大神看下),都是同样的效果,为何用第一段是单机即可实现,第二段则需要双击呢(第二段A链接的那函数名我就不加了,那里都知道用来绑定函数,那里大神不用解释)


<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>挑战题</title>

        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>

    </head>

    

    <body>

    <ul>

        <li>001</li>

        <li>002</li>

        <li>003</li>

        <li>004</li>

        <li>005</li>

        <li>006</li>

        <li>007</li>

    </ul>

    <a href="javascript:;" >更多</a>  

    </body>

    <script type="text/javascript">

    $("li:eq(4)").css("display","none");

                $("li:last").css("display","none");

            $(function(){

        $("a").click(function(){

            if($("a").text() === "更多"){

                $("a").text("简化");

                $("li:eq(4)").css("display","list-item");

                $("li:last").css("display","list-item");

            }else{

                $("a").html("更多");

                $("li:eq(4)").css("display","none");

                $("li:last").css("display","none");

            };

            });

            });

-------------------------------------------------------------------------------------------


$("li:eq(4)").css("display","none");

                $("li:last").css("display","none");

            function abc(){

        $("a").click(function(){

            if($("a").text() === "更多"){

                $("a").text("简化");

                $("li:eq(4)").css("display","list-item");

                $("li:last").css("display","list-item");

            }else{

                $("a").html("更多");

                $("li:eq(4)").css("display","none");

                $("li:last").css("display","none");

            };

            });

            

            };


    </script>

    

  


正在回答

1 回答

<!DOCTYPE html>

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>挑战题</title>

    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>

</head>

<body>

    <ul>

        <li>001</li>

        <li>002</li>

        <li>003</li>

        <li>004</li>

        <li>005</li>

        <li>006</li>

        <li>007</li>

    </ul>

    <a href="javascript:;" onclick="abc()">更多</a>

</body>

<script type="text/javascript">
    $("li:eq(4)").css("display", "none");

    $("li:last").css("display", "none");

    function abc() {

        $("a").click(function () {

            if ($("a").text() === "更多") {

                $("a").text("简化");

                $("li:eq(4)").css("display", "list-item");

                $("li:last").css("display", "list-item");

            } else {

                $("a").html("更多");

                $("li:eq(4)").css("display", "none");

                $("li:last").css("display", "none");

            };
        });
    };

</script>

</html>


这个是需要点击两次的代码,如果你把$("a").click(function () {.....})这一层function去掉  就可以实现点击一次达到效果。

原因在于  <a href="javascript:;" onclick="abc()">更多</a>  这个点击事件触发function abc() 当该函数执行到$("a").click(function ()  这一步时,又需要触发一次点击事件  才可以继续调用该方法,让程序往下进行。

1 回复 有任何疑惑可以回复我~
#1

lihuwei 提问者

非常感谢!
2016-05-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

求大神解释下代码,有点纠结

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信