随机、if 语句和 event.target
Random, if statement, and event.target
我是Javascript的新手,我对event.target
有问题。问题是我用Math.random
来显示一个数字,然后使用一个if
语句,这样如果你点击与数字对应的图像,它会变大,如果你点击另一个图像,它的不透明度就会改变。
它在Chrome和IE中完美运行,但在Firefox中则不然(我知道这是经典的)。
这是我的代码:
var sunrise_sunset = [19, 20 ,6, 7];
var night = [21, 22, 23, 0, 1, 2, 3, 4, 5];
var day = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];
var hours = sunrise_sunset.concat(night).concat(day);
var randomHour = Math.floor(Math.random() * hours.length);
{document.getElementById("soleil").addEventListener("click", function(){checkAnswer(sunrise_sunset)}, false);
document.getElementById("nuit").addEventListener("click", function(){checkAnswer(night)}, false);
document.getElementById("jour").addEventListener("click", function(){checkAnswer(day)}, false);
}
function checkAnswer(array) {
var isCorrect = false;
for(var i = 0; i<array.length; i++) {
if(array[i] == randomHour){
isCorrect = true;
break;
}
}
if(isCorrect) {
event.target.style.width=500;
}
else {
event.target.style.opacity = 0.5;
}
};
<input class="img" type="image" id="soleil" src="img/soleil.jpg" alt="soleil">
<input class="img" type="image" id="jour" src="img/jour.jpg" alt="jour">
<input class="img" type="image" id="nuit" src="img/nuit.jpg" alt="nuit">
所以我的问题是,如何让它在 Firefox 中工作?我应该只更改我的 if 语句吗?我阅读了大量帖子,其中他们通过函数重新定义事件,但我看不出如何使用随机值和 if 语句来做到这一点。我不是说没有办法,只是我看不到...
答案在安德烈亚斯评论链接中。事件参数需要传递给 checkAnswer 方法。IE 和 Chrome 全局定义事件,但 Firefox 仅将其定义为函数参数。在我看来,您应该以任何方式将其作为参数传递。
请尝试以下代码,查看正在传递的新参数事件。我在火狐中测试了它。它在进行这些更改后工作。
var sunrise_sunset = [19, 20 ,6, 7];
var night = [21, 22, 23, 0, 1, 2, 3, 4, 5];
var day = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];
var hours = sunrise_sunset.concat(night).concat(day);
var randomHour = Math.floor(Math.random() * hours.length);
{
document.getElementById("soleil").addEventListener("click", function(e){checkAnswer(e, sunrise_sunset)}, false);
document.getElementById("nuit").addEventListener("click", function(e){checkAnswer(e, night)}, false);
document.getElementById("jour").addEventListener("click", function(e){checkAnswer(e, day)}, false);
}
function checkAnswer(event, array) {
var isCorrect = false;
for(var i = 0; i<array.length; i++) {
if(array[i] == randomHour){
isCorrect = true;
break;
}
}
if(isCorrect){
event.target.style.width=500;
}else{
event.target.style.opacity = 0.5;
}
};
相关文章:
- jQuery event.target is_a_child_of(element)
- 面料:“;鼠标:向下”;在event.target中未返回对象
- 使用event.target.classlist区分按钮颜色
- AngularJS复选框通过$event.target更改问题
- 当event.target返回子元素时,如何只获取click事件的父元素
- 如何使用event.target访问特定子项及其文本
- 获取'event.target.id'作为字符串
- 火狐浏览器与 event.target.id 的问题
- 如何使用angularJS和jqlite测试event.target.hasClass()
- react-click event has empty event.target
- event.target.id 不在火狐上工作
- event.target在手机上的工作方式是否不同
- 无法获取使用 event.target.id 触发事件的输入 ID
- 为什么我的 event.target 数据在 chrome 中不起作用
- event.target 未提供所需的输出
- event.target 中未在 Firefox 中定义,在 IE 中出现小错误
- 无法记录 event.target(使用 Chrome)
- Javascript 错误:TypeError:“null”不是 safari 上的对象(评估“event.target
- 随机、if 语句和 event.target
- $(this) vs e.target or event.target in jquery