我要做的只是在单击按钮时隐藏一个 div:
function hideDiv() {
myDiv.style.visibility = 'hidden';
}
上面的函数是说,helpers
对象的一个成员
如果我执行以下操作,我必须确保在该行之前创建助手对象。还有其他陷阱吗?:
buttonOK.addEventListener('click', helpers.hideDiv, false);
这样做会更好吗:
buttonOK.addEventListener('click', function () {helpers.hideDiv();}, false);
或者我是否需要传入事件参数,即使我不使用它?
buttonOK.addEventListener('click', function (event) {helpers.hideDiv();}, false);
还是其他?
最佳答案
如果您没有在其他任何地方调用 hideDiv,那么我认为最佳做法是使用匿名函数而不是使用全局命名空间并使用 this
来引用触发的元素事件:
buttonOK.addEventListener('click', function(e) {
myDiv.style.visiblity = 'hidden';
}, false);
没有理由以这种形式使用额外的功能:
buttonOK.addEventListener('click', function (event) {hideDiv();}, false);
除非您必须将一些自定义参数传递给 hideDiv()
,而您在这里没有这样做。这个额外的函数只是额外的开销,并将调用模式更改为 hideDiv,这样 this
就不会成为触发事件的元素。
如果您也在其他事件处理程序中使用 hideDiv,那么您可以使用:
function hideDiv(e) {
myDiv.style.visiblity = 'hidden';
}
buttonOK.addEventListener('click', hideDiv, false);
buttonOK2.addEventListener('click', hideDiv, false);
buttonOK3.addEventListener('click', hideDiv, false);
关于javascript - 这些是正确的事件监听器语义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624192/