问答详情
源自:2-1 jQuery鼠标事件之click与dbclick事件

请问为什么改成这样不行?

<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(1)").click(function() {

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

        })

    </script>

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

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

改成

$('button:eq(1)'.click(function(e)){

        alert(e.target.textContent)

})

得到的结果却是”指定触发事件“,为什么不是”$('button:first').click(function(e) {alert(this)})“?

提问者:玩偶lpa 2017-03-02 15:59

个回答

  • 流浪滴汪汪汪
    2017-03-02 16:20:41
    已采纳

    e.target表示的是当前事件的触发DOM对象,你点的是button,所以e.target.textContent就是按钮上的内容。

    $('p').click()是触发p标签的点击事件,

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

                alert(e.target.textContent)

            })这是p标签的点击事件的处理方式,alert(e.target.textContent)所以这里输出的是p标签的内容