在我解释我的问题,这段代码是要考虑:在使用“addEventListener”方法时,是否不鼓励在HTML元素中使用“onlclick”?
HTML:
<div>
<button type="button" id="btn" onclick="disAl()">Click</button>
</div>
JS:
function disAl(){
var x = document.getElementById("btn");
if(x.addEventListener){
x.addEventListener("click", altTxt);
}
else if (x.attachEvent){
x.attachEvent("onclick", altTxt);
}
}
function altTxt(){
alert("Hello");
}
现在,如果我运行该程序,然后点击第一次按钮,没有任何反应。但是,从第二次点击时,弹出警报。有趣的是,当我从按钮元素中删除onclick="disAl()"
,并从脚本中删除函数定义时,问题得到修复。像下面这样:
var x = document.getElementById("btn");
if (x.addEventListener) {
x.addEventListener("click", altTxt);
}
else if (x.attachEvent) {
x.attachEvent("onclick", altTxt);
}
function ...
....
那么是否意味着onclick="disAl()"
方法是在我的情况下,没有必要?
这绝对不鼓励使用'onlclick',因为没有这个名字的事件。顺便说一句,真的很难正确地格式化/缩进你的代码?在一个不相关的主题上,我假设你使用'attachEvent'来支持多年来一直未得到支持的浏览器,并且其世界范围的使用率在百分之百的百分之一? – 2017-06-03 14:05:38