在下面添加EventListener与onClick属性的下行

时间:2011-05-26 03:02:39

标签: javascript html onclick listener

我理解addEventListeneronclick属性之间的区别,并知道如何使用它们。我想知道是否有一个缺点是始终使用EventListener而不是使用onclick属性。从动态生成javascript中的HTML时,EventListener似乎比仅使用onclick更强大。

是否存在内存/ CPU缺陷或仅使用EventListeners是否安全?

1 个答案:

答案 0 :(得分:3)

这可能不是你要进入的方向,但是有一些情况你无法删除事件监听器。

事件处理程序完全公开,任何人都可以修改(在某种程度上):

// You do this
myLink.onclick = function () {
    alert('hello, world');
};

// Another developer who hates you because
// he thinks that you're hitting on his girlfriend
// but you're not, you're just friends, but
// he's jealous so he doesn't understand
// does this
myLink.onclick = function () {
    alert('muahahahaha');
};

// Someone else could even get rid of
// the handler entirely:
myLink.onclick = null;

但是没有公开可访问的事件监听器列表。删除事件侦听器的唯一方法是,您仍然可以访问原始函数:

myLink.addEventListener('click', function () {
    alert('hello, world');
}, false);

现在无法移除该事件侦听器。你给了它一个匿名函数,所以如果你愿意,你甚至无法删除它。