e.target和e.event和event.srcElement

e.target 是目标对象,e.event是目标所发生的事件,event.srcElement捕获当前事件作用的对象

1.

 1 $(function(){
 2     $("li:has(ul)").click(function(e){
 3         if(this==e.target){
 4             $(this).children().toggle();
 5             $(this).css("list-style-image",($(this).children().is(":hidden")?"url(plus.gif)":"url(minus.gif)"))
 6         }
 7         return false;    //避免不必要的事件混绕
 8     }).css("cursor","pointer").click();    //加载时触发点击事件
 9
10     //对于没有子项的菜单,统一设置
11     $("li:not(:has(ul))").css({
12         "cursor":"default",
13         "list-style-image":"none"
14     });
15 });

具体问题具体分析;当前目标
在event事件中代表点击对象;
loader事件:加载对象;
e只是参数,任意取值;对应即可;

1 $(function(){
2     $(document).bind("click", function (e) {
3         $(e.target).closest("p").css("color","red");
4     })
5   });

e.target就是事件源,比如点击<input type=‘button‘ value=‘确定‘ />,那么这个事件源就是这个button。$(e.target)这里的意思是传入事件源,获得button这个对象,相当于document.getElementById()这类方法。

2.

与Flex类似,JavaScript中的事件也同样存在,捕获--触发--冒泡 三个节点.比较常见的情况是,在子DIV触发事件时,如果父DIV也监听同类事件,那么也会一起触发,并向上冒泡

jQuery对事件监听函数,都会默认传递一个参数,一般命名为event或e(非必须,也可以任意命名)

e,event参数中支持下列属性: 
event.stopPropagation(); 停止事件冒泡的方法 
event.preventDefault(); 组织默认行为--如超链接的跳转

更简单的方式: 
return false,对上面两种都起同样的作用

event.type ---事件的类型,如click 
event.target---事件的html元素对象 
event.relatedTarget() --如在mouseover事件触发时,相关的元素,如另外一个mouseout元素 
event.pageX()/event.pageY() --相对于页面的x,y坐标 
event.which() --获取与事件相关的键盘或鼠标的按键值 
event.metaKey()--判断事件是否包含ctrl按键 
event.originalEvent()--指向原始的事件对象

3.event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称。

注意获取的标记都以大写表示,如"TD","TR","A"等。

<script type="text/javascript">
function tdclick(){
if(event.srcElement.tagName.toLowerCase()==‘td‘)
alert("行:"+(event.srcElement.parentNode.rowIndex+1)+"列:"+(event.srcElement.cellIndex+1));
}
</script>

  IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.

event.srcElement.selectedIndex一般使用在select对像上:

<input type=button value=GO title="?page=1">
<script language="JavaScript">
function f()
{
alert(‘index.asp‘+event.srcElement.title)
location.href=‘index.asp‘+event.srcElement.title
}
</script>
<a title="a测试" >a测试</a>
<br>
<table border=1 width="200">
<tr title="tr测试" ><td>tr</td></tr>
</table>
<table border=1 width="200">
<tr><td title="td测试" >td</td></tr>
</table>
<select >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select> 

event.srcElement的子标签 和父标签: 
第一个子标签为 
event.srcElement.firstChild 
最后个一个是 
event.srcElement.lastChild 
当然也可以用 
event.srcElement.children[i] 
event.srcElement.ChildNode[i] 
至于event.srcElement.parentElement是指在鼠标所在对象的上一个对象.

时间: 2024-12-15 07:12:43

e.target和e.event和event.srcElement的相关文章

js——ev || window.event,event.srcElement || event.target

参考:https://blog.csdn.net/u012528184/article/details/41694155 https://www.cnblogs.com/lilirufeng/p/6045969.html 注:我用的是vue,一般js同理. 页面: <div @click="getAttribute"> <div v-for="(item,index) in list" :key="index"> <

Event/window.Event属性和方法

type:事件的类型,如onlick中的click:srcElement/target:事件源,就是发生事件的元素:button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键)clientX/clientY: 事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置:(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪 里,只要

Python3 Tkinter基础 Frame bind 绑定鼠标左右键 打印点击的位置 event.x event.x_root

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: from tkinter import * root=Tk() #创建一个框架,在这个框架中响应事件 frame=Frame(root,width=200,height=200) def callBackLeft(event): print("相对于应用程序左上

js获取键盘按下的键值event.keyCode,event.charCode,event.which的兼容性

js获取键盘按下的键值有event.keyCode,event.charCode和event.which 其中: 谷歌浏览器对event.keyCode,event.charCode和event.which都兼容. 火狐浏览器对event.keyCode部分键值有效,如上下左右键(37,38,39,40),enter键(13),PgUp(33),PgDn(34)等部分有效,对数字键,字母键无效. event.which也是部分键值有效,如字母键,数字键,enter键,Backspace键等有效,

这样理解比较好吧(pageX,pageY,clientX,clientY,eventX,eventY,scrollX,scrollY,screenX,screenY,event.offsetX,event.offsetY,offsetLeft,style.left)

1 pageX,pageY:鼠标指针相对于当前窗口的X,Y坐标,计算区域包括窗口自身的控件和滚动条.(火狐特有) 2 event.clientX,event.clientY:鼠标指针相对于当前窗口的X,Y坐标,和page 不同的是计算区域不包括窗口自身的控件和滚动条. 3 event.X和event.Y:相对于当前窗口,设置或获取鼠标指针位置相对于父文档的x,y像素坐标(可惜火狐不支持,人生总要有些遗憾也是没办法的). 4 scrollX,scrollY:望文生义,相对于浏览器而言的,随滚动条移

event.preventDefault() --- event.stopPropagation()

1.event.preventDefault()   阻止默认行为 <a href="http://www.baidu.com">链接</a> // 阻止默认行为 e.preventDefault(); $("a").click(function(){ event.preventDefault(); }) //阻止浏览器的默认行为 function stopDefault( e ) { //阻止默认浏览器动作(W3C) if ( e &

ev||event 和event||ev

var oEevent=ev||event 这一句这么写是要兼容各个浏览器, event是事件对象(也是windows的属性),但不是标准的,只在部分浏览器中存在,像火狐就不能识别,如果直接在火狐中用event,会报错,导致后面的js无法进行下去: 在FireFox浏览器中,事件绑定的函数要获取到事件本身,需要从函数中传入,而IE等浏览器则可以直接使用event或者window.event得到事件本身. 所以上面的问题,解决方法可以给使用事件对象的那个函数传入event形参 而像上面的如果通过传

e.pageX;event.clientX,event.clientY,scrollLeft,clientLeft获取鼠标位置

示例一: x方向没有滚动 var mx=0,my=0; function mouseMove(ev){Ev=ev||window.event;var mousePos=mouseCoords(Ev);mx=mousePos.x;my=mousePos.y;} function mouseCoords(ev){ if(ev.pageX||ev.pageY){ return{x:ev.pageX,y:ev.pageY}; } return{x:ev.clientX,y:ev.clientY+$(do

event.srcElement 用法笔记e.target

event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称. 注意获取的标记都以大写表示,如"TD","TR","A"等.所以把看过的一些抄下来,不记得的时候再来看看. 代码如下: 1 <script type="text/javascript"> 2 function tdclick(){ 3 if(event.srcElement.tag