为什么 $("button").eq(1).click(function() { alert(this)} 没实现

<!DOCTYPE html>

<html>


<head>

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

    <title></title>

    <style>

    .test2 {

        background: #bbffaa;

    }

    .test3 {

        background: yellow;

    }

    .test2,.test3{

        border: 1px solid red;

    }

    </style>

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

</head>


<body>

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


    <h4>测试一</h4>

    <button>元素绑定事件,弹出回调中的this</button>

    <script type="text/javascript">

        //this指向button元素

         $("button").eq(1).click(function() {

            alert(this)

        })

    </script>




    <h4>测试二</h4>

    <div class="test2">

        <p>$('button:first').click(function(e) {alert(this)})</p>

    </div>

    <button>指定触发事件</button>

    <script type="text/javascript">

        $('p').click(function(e) {

            alert(e.target.textContent)

        })

        //this指向button元素

        $("button").eq(0).click(function() {

            $('p').click() //指定触发绑定的事件

        })

    </script>




    <h4>测试三</h4>

    <div class="test3">

        <p>$('.right').click(1111, set)</p>

    </div>


    <button>不同函数传递数据</button>

    <script type="text/javascript">


        //不同函数传递数据

        function data(e) {

            alert(e.data) //1111

        }


        function a() {

            $("button").eq(2).click(1111, data)

        }

        a()


    </script>





</body>


</html>


慕粉3541299
浏览 2671回答 3
3回答

OlderSkee

$("button").eq(1)这个元素在这句js的后面所以获取不到把这语话移到<button>指定触发事件</button>的后面 就可以了 。。

Caballarii

因为eq(1)是选第二个元素,但这句话执行的时候第二个button还没有出来,所以没绑上,建议以后写jquery都放到$(function() {})或者$(document).ready(function(){ })里,保证html完全渲染以后才执行js

慕虎1618318

 $("button").eq(1)如果你是先给第一个按钮添加事件,应该是  $("button").eq(0),索引是从0开始的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery