IE10、Chrome获取触发事件节点的源对象

记录学习JavaScript中遇到的知识点

1、IE中获取触发事件节点的源对象是通过属性srcElement,而Chrome则是以属性tagName获得。以如下函数getEventTarget(e)实现源对象的获取。

 1 <script tyoe="text/JavaScript">
 2 //获取触发事件节点的源对象
 3     function getEventTarget(e){
 4         e=window.event || e;
 5         return e.srcElement || e.target;
 6     }
 7     document.getElementById("item2").onclick=function(e){
 8         var node=getEventTarget(e);
 9         alert(node.tagName);
10     }
11 </script>

2、运用getEventTarget(e)函数、CSS和JavaScript自带函数实现<ul></ul>下<li>标签内容的颜色变化:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4     <meta charset="utf-8">
 5     <title>JavaScript Exercises.</title>
 6     <style>
 7     .item-hover{
 8     color:red;
 9     }
10     .item-visit{
11     color:blue;
12     }
13     .item-up{
14     color:yellow;
15     }
16     #item2:hover{
17     color:red;
18     }
19     </style>
20     </head>
21     <body>
22         <h1>This is my first exercise.</h1>
23         <ul>
24             <li id="item1" class="item-hover">item1</li>
25             <li id="item2" onmousedown="this.style.color=‘#00CCFF‘" onmouseup="this.style.color=‘#AA11FD‘">item2</li>
26             <li id="item3" class="item-up" onmousedown="this.className=‘item-visit‘" onmouseup="this.className=‘item-up‘">item3</li>
27         </ul>
28     </body>
29 </html>
30 <script tyoe="text/JavaScript">
31 //获取触发事件节点的源对象
32     function getEventTarget(e){
33         e=window.event || e;
34         return e.srcElement || e.target;
35     }
36     document.getElementById("item1").onclick=function(e){
37         var node=getEventTarget(e);
38         if(node.className=="item-hover"){
39             node.className="item-visit";
40         }
41         else if(node.className=="item-visit"){
42             node.className="item-hover";
43         }
44     }
45     document.getElementById("item2").onclick=function(e){
46         var node=getEventTarget(e);
47         alert(node.tagName);
48     }
49 </script>

三个<li></li>分别以不同的方式实现:

(1、item1:以getEventTarget(e)获取鼠标单击的源节点,并以改变className的方式通过CSS的变化改颜色。

(2、Item2:以onmousedown函数直接改变标签颜色样式。

(3、item3:以onmousedown函数以改变className的方式通过CSS的变化改颜色。

时间: 2024-10-23 20:38:51

IE10、Chrome获取触发事件节点的源对象的相关文章

javascript和jquery 获取触发事件的元素

一个很简单的问题,却因为大意,经常忘了处理,导致程序运行出错. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <ul> <li> <ul> <li>listone</li> <li>listtwo

jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。

冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 <span>内层span元素</span> 外层div元素 </div> <div id="msg"></div> </body> 对应的jQuery代码如下: <script type="text/

jquery中动态新增的元素节点无法触发事件解决办法

在使用jquery中动态新增的元素节点时会发现添加的事件是无法触发的,我们下面就为各位来详细的介绍此问题的解决办法. 比如做一个ajax读取留言列表的时候,每条留言后面有个回复按钮,class为“reply”,如果你用的是$(".reply").click(function(){ //do something... }),想必后面通过ajax加载进来的列表中的回复按钮,点击事件会失效. 其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点lo

window.event.srcElement与window.event.target 触发事件的元素 触发事件对象的获取(非常重要)

判断事件触发的元素:     var tag = window.event.target || window.event.srcElement;    if (tag.tagName.toLowerCase() == "input") {        return;    } window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为事件通过元

解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法

解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下: 为了达到更好的演示效果,假设在某个页面的body下有以下结构的代码: ? 1 2 3 4 5 6 7 8 9 10 11 <p id="pLabel">新加一条</p> <ul id="ulLabel">  <li class="liLabel">aaa1</li>  <li class="li

获取路由事件的源Source和OriginalSource

路由事件的消息包含在RoutedEventArgs实例中,该实例有两个属性Source和OriginalSource,都是表示路由事件传递的起点,即事件消息的源头,只不过Source表示的是LogicalTree上的消息源头,而OriginalSource表示的是VisualTree上的源头. 主要代码如下: public MainWindow() { InitializeComponent(); this.AddHandler(Button.ClickEvent, new RoutedEven

UGUI按钮事件获取触发按钮自身组件

UGUI按钮事件中往往出现N个按钮同时调用同一个按钮事件函数的情况,然而当按钮比较多的情况下点击触发后要获取该按钮的属性中的组件内容时应该这么操作: 1,首先在按钮属性中添加一个点击事件: 2,把写好的public触发事件绑定的对象拖到指定位置,并选择所写的函数名: 3,到这里是关键了,如何获取按钮触发时所触发的对象呢?其实很简答, 就是触发时在函数中传递参数,而这个参数是按钮本身即可: public void BusineseTypeButtonBnt(GameObject sender) {

WdatePicker日期控件使用与值获取,以及选择日期完毕触发事件

HTML: <!--引入WdaePicker文件--> <script type="test/javascript" scr="datePicker/WdatePicker.js"></script> <link rel="stylesheet" type="text/css" href="datePicker/skin/WdatePicker.css"/>

Android View 事件分发机制源码详解(View篇)

前言 在Android View 事件分发机制源码详解(ViewGroup篇)一文中,主要对ViewGroup#dispatchTouchEvent的源码做了相应的解析,其中说到在ViewGroup把事件传递给子View的时候,会调用子View的dispatchTouchEvent,这时分两种情况,如果子View也是一个ViewGroup那么再执行同样的流程继续把事件分发下去,即调用ViewGroup#dispatchTouchEvent:如果子View只是单纯的一个View,那么调用的是Vie