window.event.srcElement与window.event.target 触发事件的元素 触发事件对象的获取,window.event与时间函数参数的event是同一个 事件对象
判断事件触发的元素:
var tag = window.event.target || window.event.srcElement;
if (tag.tagName.toLowerCase() == "input") {
return;
}
window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性
srcElement是事件初始化目标html元素对象引用,因为事件通过元素层次冒泡,可以在任意一层进行处理,
有了原事件元素(就是捕获过程中最里层的那个元素)的引用,就可以读写改元素的属性。
IE浏览器支持window.event.srcElement , 而firefox支持window.event.target;
在js中this与window.event.srcElement:[以下内容为转载]
我们先看一个简单的例子:
<input type="text" onblur="alert(this.value)"/>完全没有问题。
那么什么情况下不可以用?
fuction method()
{
alert(this.value);
}
<input type="text" onblur="method()"/>这个就不可以,因为method()是被响应函数调用的函数。
那么这种情况下怎么办?
方法一:
fuction method(btn)
{
alert(btn.value);
}
<input type="text" onblur="method(this)"/>没问题!
方法二:
fuction method()
{
alert(window.event.srcElement.value);
}
<input type="text" onblur="method()"/>没问题!window.event.srcElement取得触发事件的控件
==============================以下为自己写的部分====================================
window.event与事件函数的参数:event ,是同一个 事件对象
其实按照内容与行为分离的原则,我们往往时采用如下方式进行元素时间的绑定:
html:
<input type="text" id="inputEle"/>
js:
var inputEle = document.getElementById("inputEle"); //获取需要绑定的DOM元素
inputEle.onblur = function( e ) {
e === window.event; //true; 这两个完全相等,是同一个 事件对象
alert(e.target.value); //alert(window.event.target.value); 也是一样的
}
所以我们也可以在method()是被响应函数调用的函数的情况下使用window.event.target.value获取我们想要的结果。如下:
<input type="text" onblur="method()"/> //被响应函数调用的函数的情况
fuction method()
{
alert(window.event.target.value);
}
===============================以上为自己写的部分===================================
我们在看一个稍微绕一点的例子
<head>
<script type="text/javascript">
function InitEvent() {
var inputs = document.getElementsByTagName_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>
</head>
<body onload="InitEvent()">
<input id="Text1" type="text" />
<input id="Text2" type="text" />
<input id="Text3" type="text" />
</body>
</html>
正如红色注释解说,上面可以用this获得当前触发事件的input。
window.event.srcElement与window.event.target 触发事件的元素 触发事件对象的获取,window.event与时间函数参数的event是同一个 事件对象的更多相关文章
- event.srcElement 用法笔记e.target
event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称. 注意获取的标记都以大写表示,如"TD",&q ...
- 关于window.event.srcElement 和 window.event.target(触发事件的对象)
转自:https://www.cnblogs.com/zhilingege/p/7423817.html window.event.srcElement 是指触发事件的对象 <script ...
- window.event.srcElement与window.event.target 触发事件的元素
IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...
- js事件源window.event.srcElement兼容性写法
<html> <body> <p>一个好处就是 我想让body(或其他元素内)的某些对象响应事件 就不用挨个儿去写 只要在外层上写一个 然后检查event.srcE ...
- js的event.srcElement与event.target(触发事件对象)
IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...
- JS基础篇--JS的event.srcElement与event.target(触发事件对象)
IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...
- event.srcElement与event.target的区别
window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为 ...
- objelement = event.target || event.srcElement;
objelement = event.target || event.srcElement; function updateProductVideo(e){ e = window.event || a ...
- 浏览器中event.srcElement和event.target的兼容性问题
在IE下,event对象有srcElement属性,但是没有target属性:Firefox下,even对象有target属性,但是没有srcElement属性.. 解决方法:使用obj(obj = ...
随机推荐
- Python笔记之字典循环
Python笔记之字典循环 1.问题 Python是一门比较好入门的编程语言,但是入门简单,当然坑也是有的,今天就来介绍一个我遇到的坑吧,也是很简单的一个,就是当时脑子有点转不过弯来了. 先看代码 ...
- SQL Full Join 的 Where条件
SQL需求是损益视图串资产负债视图 用Excel透视表模拟出来的结果就是 用SQL查询如下: 当Where条件是左边的视图的时候 select 损益视图.年 ,损益视图.年月 ,损益视图.期间 ,损益 ...
- easyui实现多选框,并且获取值
在easyui官方文档里面是没有combobox下拉框,可以进行多选的,但是其实是可以多选的, <td align="left">大区: <input typ ...
- 【算法笔记】A1071 Speech Patterns
1071 Speech Patterns (25 分) People often have a preference among synonyms of the same word. For ex ...
- Python中utf-8与utf-8-sig两种编码格式的区别
As UTF-8 is an 8-bit encoding no BOM is required and anyU+FEFF character in the decoded Unicode stri ...
- Java网络编程基础之TCP粘包拆包
TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想象河里的流水,他们是连成一片的,其间并没有分界线.TCP底层并不了解上层业务数据的具体含义,他会根据TCP缓冲区的实 ...
- cookies session filter 自动登录
webxml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...
- 如何快速将文本中的tab更换成逗号(图文详解)
不多说,直接上干货! 现有一份数据如下. 下载日志数据并分析 到搜狗实验室下载用户查询日志 1) 介绍 搜索引擎查询日志库设计为包括约1个月(2008年6月)Sogou搜索引擎部分网页查询需求及用户点 ...
- js中in关键字的用法
1. 在For...In 声明用于对数组或者对象的属性进行循环/迭代操作. 例子:var a = new Array; for(x in a){ console.log(x); } 2. 判断对象是否 ...
- Oracle数据库调优总结
oracle采用物理读和逻辑读,第一次查询数据库采用的是物理读,以后如果使用相同的sql语句查询,那么它会采用逻辑读,直接从内存中读取数据. 采用执行计划查看执行顺序和耗时:一般查看object na ...