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

为什么测试三中的e指向的是按下按钮事件,但是测试二中的e指向的是按下p元素而不是按下按钮?

    <h4>测试二</h4>

    <div class="test2">

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

    </div>

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

    <script type="text/javascript">

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

            alert(e.target.textContent)

        })

        //this指向button元素

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

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

    })

    </script>



    <h4>测试三</h4>

    <div class="test3">

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

    </div>

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

    <script type="text/javascript">

    //不同函数传递数据

    function data(e) {

        alert(e.data) //1111

    }


    function a() {

        $("button:eq(2)").mousedown(1111, data)

    }

    a();

如题,是因为测试二中调用了事件,被触发的事件(e)是绑定在p上的;而测试三中调用的是函数,函数本身不是一个事件(e),所以函数的(e)就指向绑定在button上的事件了吗??感觉怪怪的?

正在回答

4 回答

e是event,event.target才指向触发时间的元素。。前面都在说些啥

0 回复 有任何疑惑可以回复我~

e是event的意思,是当前执行的事件

测试二:

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

            alert(e.target.textContent)

        })

是p元素的mousedown事件,后面button的触发事件也是p元素的啊。

测试三:

function data(e) {

        alert(e.data) //1111

    }


    function a() {

        $("button:eq(2)").mousedown(1111, data)

    }

相当于:

function a() {

        $("button:eq(2)").mousedown(1111,function(e) {

        alert(e.data)

    })

    }


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

这么给你说吧,e是个新东西,可以写成任何形式比如ABC,没有任何意义,当个盒子传入,装入了事件本身,然后他成了一个类,里面有很多属性,方法,调用函数,他装什么就是什么东西,那个1111是把e.date的值改成了1111

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么测试三中的e指向的是按下按钮事件,但是测试二中的e指向的是按下p元素而不是按下按钮?

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