使用以下代码适用于所有浏览器,但在Firefox中它会出现错误" TypeError:answer is undefined quiz.js:13"
function getAnswer() {
var answer = window.event,
btn = answer.target || answer.srcElement;
return btn.id;
}
在我的完整代码行13中
btn = answer.target || answer.srcElement;
我使用这段代码检查按下了哪个按钮。
有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
window.event
仅适用于IE。对于其他浏览器,事件作为参数传递给处理程序。
由于这不是您事件的处理程序,因此您必须在实际处理程序中执行此操作并将该信息传递到getAnswer
函数,而不是使用全局window.event
function getAnswer(e) {
var btn = e.target || e.srcElement;
return btn.id;
}
document.addEventListener('click', function(e) {
e = e || window.event;
console.log(getAnswer(e));
});
或者,如果使用HTML属性,则必须从HTML传递它。
<p onclick="alert(getAnswer(event))"></p>
答案 1 :(得分:0)
...是
Firefox没有window.event
,而是使用传入的事件对象。(据我所知,此代码也不适用于Chrome。)
function getAnswer(event) {
var answer = event || window.event,
// Added the `var` here.
var btn = answer.target || answer.srcElement;
return btn.id;
}