In firefox when you add an onclick event handler to a method an event object is automatically passed to that method. This allows, among other things, the ability to detect which specific element was clicked. For example
document.body.onclick = handleClick;
function handleClick(e)
{
// this works if FireFox
alert(e.target.className);
}
Is there any way to approximate this in IE? i need to be able to detect which element is clicked from an event handler on the body element.
Here is how would I do it in case I cannot use jQuery
document.body.onclick = handleClick;
function handleClick(e)
{
//If "e" is undefined use the global "event" variable
e = e || event;
var target = e.srcElement || e.target;
alert(target.className);
}
And here is a jQuery solution
$(document.body).click(function(e) {
alert($(this).attr("class"));
});
That is not the approved notation to add events to dom nodes.
if (el.addEventListener){
el.addEventListener('click', modifyText, false);
} else if (el.attachEvent){
el.attachEvent('onclick', modifyText);
}
Is the recommended Notation for binding click events cross-browser friendly.
See:
Also, when an event is clicked, the callback function that is executed contains an object "this" which is the entity that was clicked.
function foo() {
window.open(this.src, '_blank');
}
在IE中它是
e.srcElement
I think IE uses a variable called event
. See if that works?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.