event.target是什么意思
时间: 2023-11-12 08:06:59 浏览: 39
在JavaScript中,event.target是一个事件属性,表示触发该事件的元素。当一个事件被触发时,它会传递一个事件对象event,这个对象包含了很多关于该事件的信息,包括触发事件的元素。event.target返回的是一个DOM元素,它是事件的目标,即事件最初发生的元素。通过event.target可以获取到触发事件的元素,从而进行相应的操作或处理。
相关问题
event.target与event.currentTarget
event.target是事件的目标元素,即触发事件的元素。而event.currentTarget是当前事件的处理元素,即事件绑定的元素。如果事件在目标元素上触发,那么event.target和event.currentTarget是相同的。但如果事件在目标元素的子元素上触发,那么event.target是子元素,而event.currentTarget是目标元素。例如:
```html
<div id="parent">
<button id="child">Click me</button>
</div>
```
```javascript
document.getElementById('parent').addEventListener('click', function(event) {
console.log(event.target.id); // "child"
console.log(event.currentTarget.id); // "parent"
});
```
在上面的例子中,当点击子元素按钮时,event.target是子元素按钮,而event.currentTarget是父元素div。
obj.onmousedown = function(event) { //点击的不是白盒子 // 兼容IE event = event || window.event; if ((event.target ? event.target : event.srcElement).className == 'i') { if ((event.target ? event.target : event.srcElement).style.backgroundColor = "#1AAB8A") { num1 = num1 + 200; } else if ((event.target ? event.target : event.srcElement).style.backgroundColor = "#E15650") { num2 = num2 + 300; } else if ((event.target ? event.target : event.srcElement).style.backgroundColor = "#121B39") { num3 = num3 + 400; } else if ((event.target ? event.target : event.srcElement).style.backgroundColor = "#80A84E") { num4 = num4 + 500; } //点击后的盒子颜色 (event.target ? event.target : event.srcElement).style.backgroundColor = "#bbb"; //清除盒子标记 (event.target ? event.target : event.srcElement).className = ''; //计分 //显示得分 num=num1+num2+num3+num4; count.innerHTML = '当前得分: ' + num; } 为什么错了
这段代码可能出错的地方有:
1. 在 if 语句中,比较颜色值时应该使用双等号 `==`,而不是赋值符号 `=`。
2. 在比较颜色值时,应该使用 RGB 值而不是颜色名称。例如,应该使用 `rgb(26, 171, 138)` 而不是 `#1AAB8A`。
3. 在计算得分时,应该将四个得分相加,而不是分别累加到 num1、num2、num3 和 num4 中。
下面是修改后的代码:
```
obj.onmousedown = function(event) {
//点击的不是白盒子
// 兼容IE
event = event || window.event;
if ((event.target ? event.target : event.srcElement).className == 'i') {
if ((event.target ? event.target : event.srcElement).style.backgroundColor == "rgb(26, 171, 138)") {
num1 = num1 + 200;
} else if ((event.target ? event.target : event.srcElement).style.backgroundColor == "rgb(225, 86, 80)") {
num2 = num2 + 300;
} else if ((event.target ? event.target : event.srcElement).style.backgroundColor == "rgb(18, 27, 57)") {
num3 = num3 + 400;
} else if ((event.target ? event.target : event.srcElement).style.backgroundColor == "rgb(128, 168, 78)") {
num4 = num4 + 500;
}
//点击后的盒子颜色
(event.target ? event.target : event.srcElement).style.backgroundColor = "#bbb";
//清除盒子标记
(event.target ? event.target : event.srcElement).className = '';
//计分
//显示得分
num = num1 + num2 + num3 + num4;
count.innerHTML = '当前得分: ' + num;
}
}
```