[英]How can I get the javascript event object inside a event handler?
我有一个带有onclick参数的div:
<div onclick="some_function()"></div>
如何访问函数内的事件对象? 我需要它来获取event.target
function some_function()
{
event = event || window.event;
var target = event.target || event.srcElement;
//does not work in IE and Firefox, but works in chrome
}
这条路:
<div onclick="some_function(event)"></div>
function some_function(evt)
{
// do something with evt (the event passed in the function call)
}
注意,参数名称必须是函数调用中的event
。 在事件处理程序中,您可以使用所需的名称。
一个实时示例: http : //jsfiddle.net/davidbuzatto/KHyAb/
使用事件到达目标。 当心目标与currentTarget问题:
https://developer.mozilla.org/zh-CN/docs/Web/API/Event/currentTarget
<div onclick="some_function(event)"></div>
function some_function(event)
{
// event.target is the DOM element that triggered the event
}
使用事件和这两者
document.querySelector("div").addEventListener("click", function(event) { some_function(event, this); }, false); function some_function(currentEvent, currentObject) { alert("Object is: " + currentObject.nodeName); alert("Event is: " + currentEvent.type); };
<div>Click Me</div>
<div onclick="some_function(this, event)"></div>
function some_function(elem, e)
{
//You have both: html element (elem), and object event (e)
//elem is not always equal to e.target
}
<div onclick="alert(this === event.target);">click here <span>then here</span></div>
如果我们使用事件侦听器,则在“ 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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.