因此,我们有一个页面:
<span id='container'> <a href='#' id='first'>First Link</a> <a href='#' id='second'>Second Link</a> </span>
并想添加一些点击事件:
first.addEventListener('click', function(){alert('sup!');})
奇迹般有效!但是,当您将第二个参数设为外部函数时:
function message_me(m_text){ alert(m_text) } second.addEventListener('click', message_me('shazam'))
它立即调用该函数。我该如何阻止!
由于第二个参数需要函数 引用 ,因此您需要提供一个。使用有问题的代码,您将立即调用该函数并传递其 结果(这是undefined因为,因为该函数所做的全部是alert且不返回任何内容)。在匿名函数中调用该函数(如您的第一个示例),或者更改该函数以返回一个函数。
undefined
alert
function message_me(m_text){ alert(m_text) } second.addEventListener('click', function() { message_me('shazam'); } );