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 = ...
随机推荐
- java连接hbase时出现....is accessible from more than one module:
今天在用java程序连接hbase时,出现错误,The package org.apache.hadoop.hbase is accessible from more than one module: ...
- L06-Ubuntu系统中部署Vagrant和VirtualBox
一.前言 1.Vagrant是一个搭建完整的虚拟开发环境的工具~~~更多关于Vagrant理论可查看这篇博文https://www.cnblogs.com/davenkin/p/vagrant-vir ...
- 使用GPIO监听中断
#include<stdlib.h> #include<stdio.h> #include<string.h> #include<unistd.h> # ...
- uml地址栏参数特殊字符处理
转义方法: function URLencode(sStr) { return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22') ...
- 【JS新手教程】浏览器弹出div层1
JS中,可以弹出一个层来进行提示等作用,方法是利用css样式display样式,当display等于none时,该元素就不会在页面显示出来,而且元素也不会占空间.就是用户触发某些事件时,动态修改该样式 ...
- php 根据子分类循环获取其父级分类
/** * 根据子分类循环获取其父级分类 */ function goodsCatPath($catId, $data = []){ if($catId==0)return $data; $data[ ...
- prim /kruskal 最小生成树
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #inc ...
- 何为Web App,何为Hybird App
这些概念听起来很火,当下也很流行,真正理解起来却并非易事.如果让我来全面的解释Web App和Hybird App,我觉得还有些困难. 这篇文章只是我深入了解移动领域开发过程中的不断整理和总结,其中涉 ...
- solr7之solrJ的使用
solr7的官网API介绍 网页翻译的不是很准确,只能了解个大概,基本能获取如下信息: 一.构建和运行SolrJ应用程序 对于用Maven构建的项目, pom.xml配置: <dependenc ...
- url解码
最近在做流量分析的项目.需要将url解码.写了个代码,先存一下,有时间再仔细写写. #include <stdio.h> #include <stdlib.h> #includ ...