Here's my code:
function addEvent( obj, type, fn ) { if ( obj.attachEvent ) { obj['e'+type+fn] = fn; obj[type+fn] = function(){obj['e'+type+fn]( window.event );} obj.attachEvent( 'on'+type, obj[type+fn] ); } else obj.addEventListener(type, fn, false); } function alertWinner(){ alert("You may be a winner!"); } function showWinner (){ var aTag = document.getElementsByTagName("a"); addEvent(aTag, 'click', alertWinner); } showWinner();
Basically, I'm working in the firebug console and trying to get an alert to pop up when any a tag is clicked.
I can't see the problem that results in this not working and giving me the error stated in my questions title (viewed in firebug). Anybody?
If your event listener not working is dependent on some logic, whether it's about which element it'll listen on or if it's registered at all, the first step is to check that the listener is indeed added to the element. Using a breakpoint in the developer tools , a logpoint or console.
The addEventListener() method allows you to add event listeners on any HTML DOM object such as HTML elements, the HTML document, the window object, or other objects that support events, like the xmlHttpRequest object.
Here are some of the most common event types and event names: Mouse Events: click, dblclick, mousedown, mouseup, contextmenu, mouseout, mousewheel, mouseovermouseoverIn computing, a mouseover , mouse hover or hover box is a graphical control element that is activated when the user moves or hovers the pointer over a trigger area, usually with a mouse, but also possible with a digital pen. Mouseover control elements are common in web browsers.https://en.wikipedia.org › wiki › MouseoverMouseover - Wikipedia. Touch Events: touchstart, touchend, touchmove, touchcancel. Keyboard Events: keydown, keyup, keypress.
document.getElementsByTagName
returns a NodeList of DOM elements. Each element has an addEventListener
function, but the array doesn't have one.
Loop over it:
function showWinner (){ var aTags = document.getElementsByTagName("a"); for (var i=0;i<aTags.length;i++){ addEvent(aTags[i], 'click', alertWinner); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With