我有这样的代码
<a id='lnk1' onclick='do something' >test</a>
稍后将代码添加到相同的锚标记中,例如
lnk = document.getElementById('lnk1')
lnk.onclick = function() { do something}
现在发生的事情是,在第二段代码中,锚标记的 onclick 函数被覆盖。我想要发生的是运行第一个 onclick 的代码,然后运行第二个 onclick 的代码。
有一种非常简单且符合标准的方法可以做到这一点:
lnk1.addEventListener('click', function() {
// do something
});
这在版本 9 之前的 IE 中不起作用,因此您需要执行以下操作:
var handler = function() {
// do something
};
if ("addEventListener" in lnk1) { // standards-compliant browsers
lnk1.addEventListener('click', handler);
} else { // Internet Explorer < v9
lnk1.attachEvent('onclick', handler);
}
这将起作用,并且 HTML 属性和上面代码中指定的原始函数都将运行。HOWEVER在同一个地方定义所有事件处理程序会好得多:在 Javascript 中。认真考虑从 HTML 属性中删除事件处理逻辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)