如何在事件处理程序中获取javascript事件对象?

如何在事件处理程序中获取javascript事件对象?,javascript,event-handling,Javascript,Event Handling,我有一个带有onclick参数的div: <div onclick="some_function()"></div> 这样: <div onclick="some_function(event)"></div> function some_function(evt) { // do something with evt (the event passed in the function call) } 函数某些_函数(evt) {

我有一个带有onclick参数的div:

<div onclick="some_function()"></div>
这样:

<div onclick="some_function(event)"></div>

function some_function(evt) 
{
    // do something with evt (the event passed in the function call)
}

函数某些_函数(evt)
{
//使用evt(函数调用中传递的事件)执行某些操作
}
请注意,函数调用中的参数名称必须是
event
。在事件处理程序中,可以使用所需的名称

一个活生生的例子:

这样:

<div onclick="some_function(event)"></div>

function some_function(evt) 
{
    // do something with evt (the event passed in the function call)
}

函数某些_函数(evt)
{
//使用evt(函数调用中传递的事件)执行某些操作
}
请注意,函数调用中的参数名称必须是
event
。在事件处理程序中,可以使用所需的名称


一个活生生的例子:

使用事件到达目标。注意目标与当前目标之间的问题:


函数某些函数(事件)
{
//target是触发事件的DOM元素
}

使用事件到达目标。注意目标与当前目标之间的问题:


函数某些函数(事件)
{
//target是触发事件的DOM元素
}

使用事件和此

document.querySelector(“div”).addEventListener(“单击”),函数(事件){
某些功能(事件、此);
},假);
函数某些函数(currentEvent、currentObject){
警报(“对象为:+currentObject.nodeName”);
警报(“事件为:+currentEvent.type”);
};

使用event和this单击我

document.querySelector(“div”).addEventListener(“单击”),函数(事件){
某些功能(事件、此);
},假);
函数某些函数(currentEvent、currentObject){
警报(“对象为:+currentObject.nodeName”);
警报(“事件为:+currentEvent.type”);
};
单击我

函数某些函数(elem,e)
{
//您有两个:html元素(elem)和对象事件(e)
//elem并不总是等于e.target
}
点击这里,然后点击这里

函数某些函数(elem,e)
{
//您有两个:html元素(elem)和对象事件(e)
//elem并不总是等于e.target
}
点击这里,然后点击这里

如果我们使用事件侦听器,那么“this”中有html元素,“event”中有事件对象

<a id="mya" href="#">Link</a>
var myA= document.querySelector("#mya");
myA.addEventListener("click", some_function);
function some_funtion() {
  //Here the html element is: this
  //Here the event object is: event
  //event.target is not always equal to this
}
<div id="mydiv">click here <span>then here</span></div>
var myDiv = document.querySelector("#mydiv");
myDiv.addEventListener("click", other_function);
function other_function() {
    alert(this === event.target);
}    

var myA=document.querySelector(“myA”);
myA.addEventListener(“单击”,一些函数);
函数的某些函数(){
//这里的html元素是:this
//这里的事件对象是:event
//event.target并不总是等于此值
}
点击这里,然后点击这里
var myDiv=document.querySelector(“myDiv”);
myDiv.addEventListener(“单击”,其他函数);
函数其他_函数(){
警报(此===event.target);
}    

如果我们使用事件侦听器,那么“this”中有html元素,“event”中有事件对象

<a id="mya" href="#">Link</a>
var myA= document.querySelector("#mya");
myA.addEventListener("click", some_function);
function some_funtion() {
  //Here the html element is: this
  //Here the event object is: event
  //event.target is not always equal to this
}
<div id="mydiv">click here <span>then here</span></div>
var myDiv = document.querySelector("#mydiv");
myDiv.addEventListener("click", other_function);
function other_function() {
    alert(this === event.target);
}    

var myA=document.querySelector(“myA”);
myA.addEventListener(“单击”,一些函数);
函数的某些函数(){
//这里的html元素是:this
//这里的事件对象是:event
//event.target并不总是等于此值
}
点击这里,然后点击这里
var myDiv=document.querySelector(“myDiv”);
myDiv.addEventListener(“单击”,其他函数);
函数其他_函数(){
警报(此===event.target);
}    

他想要的是事件对象,而不是目标。在我看来..他想要事件到达目标:)
这与
事件不总是一样的。目标
你能解释一下吗?当元素嵌套在具有处理程序的元素中时,
将始终引用具有处理程序的元素,但
事件。目标
将引用所单击的嵌套最深的元素<代码>单击此处,然后单击此处
他想要的是事件对象,而不是目标。在我看来..他想要事件到达目标:)
并不总是与
事件相同。目标
你能解释一下吗?当元素嵌套在具有处理程序的元素中时,
将始终引用具有处理程序的元素,但
事件。目标
将引用所单击的嵌套最深的元素<代码>单击此处,然后单击此处
这对于内联事件处理程序是有效的,正如所要求的那样。但是如果我们使用事件侦听器,那么“this”中有html元素,“event”中有事件对象。这对于内联事件处理程序是有效的,正如所要求的那样。但是如果我们使用事件侦听器,那么“this”中有html元素,“event”中有事件对象。
<a id="mya" href="#">Link</a>
var myA= document.querySelector("#mya");
myA.addEventListener("click", some_function);
function some_funtion() {
  //Here the html element is: this
  //Here the event object is: event
  //event.target is not always equal to this
}
<div id="mydiv">click here <span>then here</span></div>
var myDiv = document.querySelector("#mydiv");
myDiv.addEventListener("click", other_function);
function other_function() {
    alert(this === event.target);
}