Javascript中target事件属性,事件的⽬标节点的获取。
window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性
srcElement是事件初始化⽬标html元素对象引⽤,因为事件通过元素层次冒泡,可以在任意⼀层进⾏处理,
有了元素的引⽤,就可以读写改元素的属性。
IE浏览器⽀持window.event.srcElement ,⽽firefox⽀持window.event.target;
我们先看⼀个简单的例⼦:
<input type="text" onblur="alert(this.value)"/>完全没有问题,能弹出框内容是text⽂本框⾥的⽂本内容。
fuction method(){
alert(this.value);}
<input type="text" onblur="method()"/>这个就不可以,弹出框的内容是undefined,因为method()是被响应函数调⽤的函数。
onblur和blur的区别
也就是说,当描述某个事件时,直接想要获得该事件⽬标元素的value值是不⾏的,
这时候就需要先获取⽬标元素,再提取之中的value值。
可以做如下改动:
⽅法⼀:先使⽤this指向触发该onblur事件的⽬标元素,再提取之中的value值,代码如下
function method(this){alert(this.value);}
⽅法⼆:先通过window.event.srcElement(IE浏览器⽀持)或者window.event.target(FireFox浏览器⽀持)先指向触发该onblur事件的⽬标元素,再提取之中的value值,代码如下
function method(){alert(window.event.srcElement.value);}
<input type="text" onblur="method()"/>
下⾯再看⼀个复杂点的例⼦
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<script type="text/javascript">
function InitEvent() {
var inputs = ElementsByTagName_r("input");
for (var i = 0; i < inputs.length; i++) {
inputs[i].onblur = OnblurEvent;
}
}
function OnblurEvent() {
/
/ OnblurEvent是onblur的响应函数,⽽不是被响应函数调⽤的函数
// 所以可以⽤this来获取发⽣事件的对象
if (this.value.length > 0) {
this.style.backgroundColor = "white";
}
else {
this.style.backgroundColor = "red";
}
}
</script>
<body onload="InitEvent()">
<input id="Text1" type="text" />
<input id="Text2" type="text" />
<input id="Text3" type="text" />
</body>
</html>
执⾏后,可以看到若在⽂本框内键⼊⽂本内容,失去焦点时⽂本框背景颜⾊为⽩⾊不变,但若⽂本框内没有⽂本内容就失去焦点,则背景颜⾊变为红⾊。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。