判断事件触发的元素:   

 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是同一个 事件对象的更多相关文章

  1. event.srcElement 用法笔记e.target

    event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称. 注意获取的标记都以大写表示,如"TD",&q ...

  2. 关于window.event.srcElement 和 window.event.target(触发事件的对象)

    转自:https://www.cnblogs.com/zhilingege/p/7423817.html window.event.srcElement   是指触发事件的对象 <script ...

  3. window.event.srcElement与window.event.target 触发事件的元素

    IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...

  4. js事件源window.event.srcElement兼容性写法

    <html> <body> <p>一个好处就是 我想让body(或其他元素内)的某些对象响应事件 就不用挨个儿去写 只要在外层上写一个 然后检查event.srcE ...

  5. js的event.srcElement与event.target(触发事件对象)

    IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...

  6. JS基础篇--JS的event.srcElement与event.target(触发事件对象)

    IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...

  7. event.srcElement与event.target的区别

    window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为 ...

  8. objelement = event.target || event.srcElement;

    objelement = event.target || event.srcElement; function updateProductVideo(e){ e = window.event || a ...

  9. 浏览器中event.srcElement和event.target的兼容性问题

    在IE下,event对象有srcElement属性,但是没有target属性:Firefox下,even对象有target属性,但是没有srcElement属性.. 解决方法:使用obj(obj = ...

随机推荐

  1. java连接hbase时出现....is accessible from more than one module:

    今天在用java程序连接hbase时,出现错误,The package org.apache.hadoop.hbase is accessible from more than one module: ...

  2. L06-Ubuntu系统中部署Vagrant和VirtualBox

    一.前言 1.Vagrant是一个搭建完整的虚拟开发环境的工具~~~更多关于Vagrant理论可查看这篇博文https://www.cnblogs.com/davenkin/p/vagrant-vir ...

  3. 使用GPIO监听中断

    #include<stdlib.h> #include<stdio.h> #include<string.h> #include<unistd.h> # ...

  4. uml地址栏参数特殊字符处理

    转义方法: function URLencode(sStr) { return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22') ...

  5. 【JS新手教程】浏览器弹出div层1

    JS中,可以弹出一个层来进行提示等作用,方法是利用css样式display样式,当display等于none时,该元素就不会在页面显示出来,而且元素也不会占空间.就是用户触发某些事件时,动态修改该样式 ...

  6. php 根据子分类循环获取其父级分类

    /** * 根据子分类循环获取其父级分类 */ function goodsCatPath($catId, $data = []){ if($catId==0)return $data; $data[ ...

  7. prim /kruskal 最小生成树

    #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #inc ...

  8. 何为Web App,何为Hybird App

    这些概念听起来很火,当下也很流行,真正理解起来却并非易事.如果让我来全面的解释Web App和Hybird App,我觉得还有些困难. 这篇文章只是我深入了解移动领域开发过程中的不断整理和总结,其中涉 ...

  9. solr7之solrJ的使用

    solr7的官网API介绍 网页翻译的不是很准确,只能了解个大概,基本能获取如下信息: 一.构建和运行SolrJ应用程序 对于用Maven构建的项目, pom.xml配置: <dependenc ...

  10. url解码

    最近在做流量分析的项目.需要将url解码.写了个代码,先存一下,有时间再仔细写写. #include <stdio.h> #include <stdlib.h> #includ ...