So we have a page:
First Link
Second Link&
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.
You can do this:
function message_me(m_text){
alert(m_text);
}
second.addEventListener('click', function () {
message_me('shazam')
});
or this:
function message_me(m_text){
return function () {
alert(m_text);
};
}
second.addEventListener('click', message_me('shazam'));
DEMO: http://jsfiddle.net/tcCvw/