var e=window.event;var obj=e.srcElement是什么意思

var e=window.event;var obj=e.srcElement是什么意思,第1张

var e=windowevent;

是获取事件对象,这里是IE下的,event是window的一个属性;

var obj=esrcElement;

是获取发生事件的那个元素,这个元素是一个对象,这也是IE下的。

要实现所有浏览器兼容,就用以下代码:

var e = windowevent || event;

var obj = esrcElement || etarget

一、windowevent代表着事件对象的状态。只有在事件发生时生效。如鼠标、键盘等事件被触发时这个对象才存在。windowevent这只在IE下是这样的。他并不是标准。。也就是说其他浏览器并不支持。在W3C标准支持的浏览器下事件对向是引发事件涵数的第一个参数,参数名随意。

二、javascript函数(方法)d()

参数为e||windowevent  表示e或windowevent  这句话是跨浏览器的写法  支持这两种方式的 浏览器才能进入该方法,IE中该对象为windowevent(window可省略)  而Firefox中该对象为e  ,至于该对象是什么:该对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等  例如:获取光标位置 eventclientX eventclientY

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

(参考资料 百度百科 JavaScript)

var oEvent=ev||event;

这一句这么写是要兼容各个浏览器,

在FireFox浏览器中,事件绑定的函数要获取到事件本身,需要从函数中传入,而IE等浏览器则可以直接使用event或者windowevent得到事件本身。

这一句的用途:需要获取和事件相关的信息时使用。如:

获取键盘按下或d起的按键

获取鼠标的位置坐标

获取出发改事件的元素

获取事件名称

获取事件当前的传播阶段

获取事件生成的日期时间

至于上面这些怎么获取,可补一下js事件方面的相关函数和属性。

例子:

<div id="dd">&nbsp;</div>

o=documentgetElementById("dd");

oonclick=function (ev){

var oEvent=ev||event;

alert(oEventscreenX);

}

1、this 表示这个<input> 元素,等同于documentgetElementById;

2、a)你的理解是正确的,但是不仅只有undifined会被强制转换。

    js的弱类型,让他可以申明后赋任何类型的值。

因此除了bool型的false,number类型的0,String类型的空串,还有null在三元运算符或者判断条件时都会被转成false

其他还有一些,可以看一看比较基础的javascript书和《javascript高级程序设计》,可谓一阅扫百惑,比在网上别人一知半解的讲述了解的更彻底。

b)通过上面的解答,应该知道为什么不能用event代替this了吧

c)js对于函数的定义是非常松,即使你在函数定义时未写任何参数,或者你定义的参数有多个,但是你调用时,一个参数也不填,也不会出错的。

js函数内默认有个变量,保存你的入参叫:arguments

他是一个数组,下标从0开始,

所以获取event可以写成

function Test(){

var event = windowevent||arguments[0];

}

在ie下,事件对象是在全局的,也就 window下,做为window的一个属性

在其他浏览器,都做为方法的第一个参数传入,所以这样写是为了兼容

要获取这个button的值,可以先获取这个对象,event既然是事件,肯定是某对象触发的

所以有这要一个方法

ie下是eventsrcElement

其他浏览器是eventtarget

所以获取这个对象和获取事件对象的值可以这样写

function Test(){

var event = windowevent||arguments[0],

//target 就是这个对象

target = eventsrcElement||eventtarget,

//这个对象的值

targetValue = targetvalue;

}

JS的event对象

Event属性和方法:

1 type:事件的类型,如onlick中的click;

2 srcElement/target:事件源,就是发生事件的元素;

3 button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键)

4 clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是 0,所以在IE中,要想得到事件发生的坐标相对于文档开头的位置,要加上

documentbodyscrollLeft和 documentbodyscrollTop)

5 offsetX,offsetY/layerX,layerY:事件发生的时候,鼠标相对于源元素左上角的位置;

6 x,y/pageX,pageY:检索相对于父要素鼠标水平坐标的整数;

7 altKey,ctrlKey,shiftKey等:返回一个布尔值;

8 keyCode:返回keydown何keyup事件发生的时候按键的代码,以及keypress 事件的Unicode字符;(firefox2不支持 eventkeycode,可以用 eventwhich替代 )

9 fromElement,toElement:前者是指代mouseover事件中鼠标移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素;

10 cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素;(ecancelBubble = true; 相当于 estopPropagation();)

11 returnValue:一个布尔属性,设置为false的时候可以组织浏览器执行默认的事件动作;(ereturnValue = false; 相当于 epreventDefault();)

12 attachEvent(),detachEvent()/addEventListener(),removeEventListener:为制定 DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在

attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素;

13 screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;

一些说明:

1 event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等;

2 event对象只在事件发生的过程中才有效。

firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。

在IE/Opera中是windowevent,在Firefox中是event;而事件的对象,在IE中是 windoweventsrcElement,在Firefox中是eventtarget,Opera中两者都可用。

3 下面两句效果相同

var evt = (evt) evt : ((windowevent) windowevent : null);

var evt = evt || windowevent; // firefox下windowevent为null, IE下event为null

4 IE中事件的起泡

IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如, div 标签包含了 a ,如果这两个标签都有onclick事件的处理函数,那么执行的情况就是先执行标签 a 的onclick事件处理函数,再执行 div 的事件处理函数。如果希望的事件处理函数执行完毕之后,不希望执行上层的 div 的onclick的事件处理函数了,那么就把cancelBubble设置为true即可。

$event:当前触发的是什么事件

$eventtarget:触发事件的元素对象(不一定是绑定事件的对象,会因为事件冒泡变化)

$eventcurrentTarget:绑定事件的元素对象

参考:

vue中关于$event的通俗理解

Vue 点击获得父元素,子元素,兄弟元素(DOM *** 作)

eventtasktype意思是获取事件的类型,触发元素的事件类型。

typeevent是事件的一个实例,经常使用的属性是type事件类型,字符串,即事件字符串中的type,也就是获取事件的类型,触发元素的事件类型。

type事件属性是返回发生的事件的类型,即当前Event对象表示的事件的名称。

以上就是关于var e=window.event;var obj=e.srcElement是什么意思全部的内容,包括:var e=window.event;var obj=e.srcElement是什么意思、JavaScript 中的window.event代表的是事件的状态,但是我有一个疑问。。。、JS里面什么时候会用到var oEvent=ev||event等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9432037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存