您好,欢迎来到一二三四网。
搜索
您的当前位置:首页JS中的THIS和WINDOW.EVENT.SRCELEMENT详解_javascript技巧

JS中的THIS和WINDOW.EVENT.SRCELEMENT详解_javascript技巧

来源:一二三四网


我们先看一个简单的例子:

代码如下:
完全没有问题。

那么什么情况下不可以用?



这个就不可以,因为method()是被响应函数调用的函数。

那么这种情况下怎么办?

方法一:



没问题!

方法二:



没问题!window.event.srcElement取得触发事件的控件

我们在看一个稍微绕一点的例子


 

我们再来看看2者之间的区别和联系

this:

下面先看一个例子:

 
 this与srcElement的区别
 
 

此时弹出的答案为“undefined”,说明在调用函数时不能使用this.属性来获取。再看下一个例子:

 
 
 
 无标题页
 

此时得出的答案为“单击”,此时为什么可以呢?从代码中可以看出,在onclick事件调用函数btnClick()时,将this当作参数传递给了函数。

综合以上:在函数调用时不能直接使用this.属性来获取,而必须将this当作参数传递。

window.event.srcElement:

下面看一个例子:

 
 
 
 无标题页
 

此时得出的答案为“单击”,说明在调用函数时可以使用window.event.srcElement.属性来获取。

为什么this不能直接使用而window.event.srcElement可以直接使用呢?从单纯的字面上说this的意思是“当前”。在函数调用时,没有指定具体是哪一个控件,在函数中直接用this是不可以的。在第二段代码中就将this当成了参数传递,所以能得出正确的答案。

其实this和window.event.srcElement的使用区别是:如果要直接使用this.属性,此时的函数不能是被调用的而必须是响应函数,而window.event.srcElement则无此。

以上所述就是本文的全部内容了,希望大家能够喜欢。

一二三四网还为您提供以下相关内容希望对您有帮助:

JS 中的 event?event:window.event什么意思?求详解。

ie下是event.srcElement 其他浏览器是event.target 所以获取这个对象和获取事件对象的值可以这样写 function Test(){var event = window.event||arguments[0],//target 就是这个对象target = event.srcElement||event.target,//这个对象的值targetValue = target.value;}

js中event.srcElement和event.target的区别

一、Javascript event.srcElement event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称。注意获取的标记都以大写表示,如"TD","TR","A"等。所以把看过的一些抄下来,不记得的时候再来看看。 function tdclick(){ if(event.srcElement.tagName.toLowerCase()...

哪位大侠能帮我把这段移动div的js代码解读下!~~急!~~

this.targetobj=window.event? event.srcElement : e.target//获得鼠标时间的目标对象div if (this.targetobj.className=="drag"){//如果这个目标对象可以移动的话 this.dragapproved=1//领导批准移动!if (isNaN(parseInt(this.targetobj.style.left))){this.targetobj.style.left=0}//如果取不...

JavaScript 中的window.event代表的是事件的状态,但是我有一个疑问...

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

JS停止冒泡和阻止浏览器默认行为

具体实现如下:使用原生JS阻止默认行为,但不会停止冒泡;使用jQuery则可同时阻止默认行为并停止冒泡。需要注意的是,不同浏览器在事件处理上存在差异。在Firefox中,事件对象是运行时的临时变量,而在IE和Opera中,事件对象的获取方式有所不同。例如,在IE中使用全局变量`window.event.srcElement`,而在...

JS问题event.srcElement.tagName.toLowerCase() == "td"

document.onclick = function(e){ e = e || window.event; src = e.target || e.srcElement; var table = parents(src , 'table');//这样可以拿到当前点击的这个元素的table var tr = parents(src , 'tr');//这样拿到当前点击的元素的父亲(tr); alert(table.id);//table的...

javascript怎么禁用浏览器后退按钮

1、复制代码 代码如下:利用JS产生一个“前进”的动作,以抵消后退功能,这种方法应该是最简洁的,并且不需要考虑用户连点两次或多次“后退”的情况,缺点是当用户端禁用了JavaScript之后即失效。2、复制代码 代码如下:Logout (Back Disabled)用location.replace从一个页面转到另一个页面。这种方法的原理是,...

IE和FF在对js支持的不同及解决方法

function mouseDownHandler(event) { var event = event || window.event;//var event = event ? event : window.event;var x = event.offsetX || event.layerX;var y = event.offsetX || event.layerY;} 3. event.srcElement IE:event对象有srcElement属性,但是没有target属性;FF:...

求救!本人才开始学习JS,好多都弄不懂。

//写js脚本的标签 function whichElement(e){ var targ if (!e) var e = window.event //如果传过来的事件为false(可以这么理解)就给它声明一个 if(e.target) targ = e.target //e.target表示点击的这个dom对象,如果存在,就赋值 else if (e.srcElement) targ = e.srcEleme...

web前端---JavaScript阻止冒泡和取消默认事件(默认行为)

注意事项: 在不同的浏览器中,事件对象和处理方式可能有所不同。例如,在IE和Opera中,event是全局变量,而在Firefox中,需要在事件处理函数中明确使用event。 事件源元素在不同浏览器中的属性也有所差异,如IE的window.event.srcElement与Firefox的event.target。因此,在编写跨浏览器兼容的代码时,需要...

Copyright © 2019- howto1234.net 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务