如何多次实现点击聚焦并传递参数?

来源:2-8 jQuery鼠标事件之focusin事件

12只怕有心人

2016-10-12 13:05

<!DOCTYPE html>

<html>


<head>

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

    <title></title>

    <style>

    .left div,

    .right div {

        width: 500px;

        height: 50px;

        padding: 5px;

        margin: 5px;

        float: left;

        border: 1px solid #ccc;

    }

    .left div {

        background: #bbffaa;

    }

    

    .right div {

        background: yellow;

    }

    </style>

    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

</head>


<body>

    <h2>.focusin()方法</h2>

    <div class="left">

        <div class="aaron">

            点击聚焦:<input type="text" />

            <br>

            点击聚焦:<input type="text" />

        </div>


    </div>

    <div class="right">

        <div class="aaron1">

            点击聚焦并传递参数:<input type="text" />

            <br>

            点击聚焦并传递参数:<input type="text" />

        </div>

        

    </div>



    <script type="text/javascript">


        //input聚焦

        //给input元素增加一个边框

        $("input:last-child").focusin(function() {

             $(this).css('border','12px solid red')

        })

        

        //D

        $("input:first").focusin(function(){

            $(this).css('border',"12px solid green")

        })

    </script>



    <script type="text/javascript">


        //不同函数传递数据

        function fn(e) {

             $(this).val(e.data)

        }


        function a() {

            $('input:first-child.focusin('慕课网', fn)

        }

        a();

    

        //DIY

        function fn(e){

            $(this).val(e.data)

        }

        

        function a(){

            $("input:last-child").focusin("请输入密码",fn)

        }

        a();

    </script>

</body>


</html>


黑体是我自己增加的,为什么这时候第一个框就无法实现点击聚焦并传递参数了?


写回答 关注

2回答

  • qq_Speranza_04025370
    2016-10-12 16:50:39
    已采纳

    <!DOCTYPE html>

    <html>


    <head>

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

        <title></title>

        <style>

        .left div,

        .right div {

            width: 500px;

            height: 50px;

            padding: 5px;

            margin: 5px;

            float: left;

            border: 1px solid #ccc;

        }

        .left div {

            background: #bbffaa;

        }

        

        .right div {

            background: yellow;

        }

        </style>

        <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

    </head>


    <body>

        <h2>.focusin()方法</h2>

        <div class="left">

            <div class="aaron">

                点击聚焦:<input type="text" />

                <br>

                点击聚焦:<input type="text" />

            </div>


        </div>

        <div class="right">

            <div class="aaron1">

                点击聚焦并传递参数:<input type="text" />

                <br>

                点击聚焦并传递参数:<input type="text" />

            </div>

            

        </div>



        <script type="text/javascript">


            //input聚焦

            //给input元素增加一个边框

            $("input:eq(1)").focusin(function() {

                 $(this).css('border','1px solid red')

            })

            

            //D

            $("input:eq(0)").focusin(function(){

                $(this).css('border',"1px solid green")

            })

        </script>



        <script type="text/javascript">


            //不同函数传递数据

            function fn(e) {

                 $(this).val(e.data)

            }


            function b() {

                $("input:eq(2)").focusin("慕课网", fn)

            }

            b();

        

            //DIY

            function fn(e){

                $(this).val(e.data)

            }

            

            function a(){

                $("input:eq(3)").focusin("请输入密码",fn)

            }

            a();

        </script>

    </body>


    </html>


    12只怕有心...

    非常感谢!

    2016-10-13 09:47:59

    共 1 条回复 >

  • 12只怕有心人
    2016-10-13 09:50:02

    自己对比了下两段代码发现如下

    1.首先选择器last和last child,first和first child是不一样的

        四个input分别为eq(0)-(3)

        在点击聚焦和点击聚焦并传递参数的2段代码中,

        如果用

         $("input:last")作为选择器,结果只改变了eq(3)

         $("input:last-child")作为选择器,改变eq(1)和eq(3)

         $("input:first")作为选择器,结果只改变了eq(0)

         $("input:first-child")作为选择器,改变eq(0)和eq(2)

         多个“child"就需要满足两个条件:

         被选取input有父元素,而且input是该父元素的第一个元素

    2.//不同函数传递数据中两个函数起名不能重复.

    3.  $('input:first-child.focusin('慕课网', fn) 中漏了一个) 

    还要再打牢基础.









jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89997 学习 · 625 问题

查看课程

相似问题