addEventListener calls the function without me even asking it to
addeventlistener, javascript
Solution
Quoting Ian's answer:
Since the second parameter expects a function reference, you need to provide one. With your problematic code, you're immediately calling the function and passing its result (which is `undefined`...because all the function does is `alert` and doesn't return anything). Either call the function in an anonymous function (like your first example) or alter the function to return a function.
function message_me(m_text){
alert(m_text)
}
second.addEventListener('click',
function() {
message_me('shazam');
}
);
Here's an updated fiddle.
Problem
So we have a page: ``` <span id='container'> <a href='#' id='first'>First Link</a> <a href='#' id='second'>Second Link</a> </span> ``` And want to add some click events: ``` first.addEventListener('click', function(){alert('sup!');}) ``` Works like a charm! However, when you make the second argument an external function: ``` function message_me(m_text){ alert(m_text) } second.addEventListener('click', message_me('shazam')) ``` It calls the function immediately. How can I stop this? So annoying! Here's a live demo: http://jsfiddle.net/ey7pB/1/