可以使用addEventListener将多个函数添加到同一目标上的同一事件吗?还是另一个addEventListener替代了先前的设置?我问是因为我想从该站点获取代码,而问题是用addEventListener进行操作是否容易得多,还是类似的解决方案?我知道window.onload = f和addEventListener(“ load”,f)几乎相同,但是不确定这个细节。我需要那个代码吗?问另一种方式:如果可以添加,为什么他们不使用addEventListener?http://webreference.com/programming/javascript/onloads/index-2.htmlfunction addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } } }
2 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
您可以使用以下任意数量添加特定类型的侦听器addEventListener:
div.addEventListener('click', () => console.log('listener 1'));
div.addEventListener('click', () => console.log('listener 2'));
<div id="div">click me</div>
相反,当您分配给on-事件属性时,如果以前曾对该属性进行过分配,则它将丢失,并且只有分配给它的最后一个将运行:
div.onclick = () => console.log('listener 1');
div.onclick = () => console.log('listener 2');
<div id="div">click me</div>
因此,一般而言,最好使用addEventListener
确保脚本不会覆盖另一个侦听器的方式,并确保您的侦听器也不会被覆盖。
问题中的代码很奇怪-是的,应该addEventListener
改用它们。
添加回答
举报
0/150
提交
取消