如何在处理程序有参数时获取事件单击对象

时间:2014-07-16 15:39:29

标签: javascript html

在下面的示例中,如果我们将 handler 添加到addEventListener而没有任何args,那么Event click对象会自动作为参数传递给处理程序

<table id="outside">
    <tr><td id="t1"> one </td></tr>
    <tr><td id="t2"> two </td></tr>
</table>

<script>
    function modifyText(e,text) 
    {
        console.log(e); // logs => click clientX=100, clientY=21
    }

    // add event listener to table
    var el = document.getElementById("outside");

        el.addEventListener("click", modifyText, false);                     //method 1
    //  el.addEventListener("click", function(){modifyText("four")}, false); //method 2
</script>   

但是如果您将任何args传递给处理程序,则不传递Event click对象。如何在处理程序

中获取Event click obj和args

1 个答案:

答案 0 :(得分:1)

如果您使用匿名函数,则会自动传入event

el.addEventListener("click", function(event){
    //event is passed
    modifyText("four") //add another param here to pass 'event' along with your param
}, false);

如果您指定一个函数作为回调,您将获得默认参数,如上所述(event是第一个)

如果你想要更多参数,你必须通过第二个参数将它传递给你的函数。