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"> </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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)