JavaScript Event进修第七章:变乱属性
为了领略Event属性,我将在这里给出一些示例代码。在这个领域内有很是严峻的赏识器兼容性题目。
当我们想去读一读关于Event的一些资料时,经常会湮没在大量的属性内里,这些属性个中的大大都不能精采的运行在大大都的赏识器。这里有event的兼容性列表。 我不规划给这些属性列个表,由于那些环境其实是太让人晕头了,并且对你的进修也不会有一点点的辅佐。在写5段代码前我先要问关于赏识器的5个题目。 1、event的范例(type)是什么? 最后一个题目我在这里做了很是细致的解答。 请留意这些代码我做了很是严谨的工具搜查。我起首建设跨赏识器的的对变乱的会见,然后在行使每一个属性前都做了赏识器支持性的搜查。 1、event的范例(type)是什么? function doSomething(e) {<BR> if (!e) var e = window.event;<BR> alert(e.type);<BR>}<BR><BR> 2、哪一个HTML元素是event的方针呢? function doSomething(e) {<BR> var targ;<BR> if (!e) var e = window.event;<BR> if (e.target) targ = e.target;<BR> else if (e.srcElement) targ = e.srcElement;<BR> if (targ.nodeType == 3) // defeat Safari bug<BR> targ = targ.parentNode;<BR>}<BR><BR> 最后两行的代码专门针对Safari的。假如event产生在一个包括文本(text)的元素上,这个文本节点(text node)而不是元素自己就成为了event的方针。因此我们要搜查假如方针的nodetype是3(文本节点)。假如是我们就把它移动到父节点上,HTML元素。 纵然event被捕捉可能冒泡了(bubbles up),target/srcElement属性也依然是最早产生event的元素。 其他的target 3、哪些键在event产生时被按下了? function doSomething(e) {<BR> var code;<BR> if (!e) var e = window.event;<BR> if (e.keyCode) code = e.keyCode;<BR> else if (e.which) code = e.which;<BR> var character = String.fromCharCode(code);<BR> alert('Character was ' + character);<BR>}<BR> 这里有一些处所也许会造成键盘变乱较量难用。好比,kepress变乱触发的时刻和行使者按下键的时刻一样长。然而,大大都赏识器内里keydown的触发时刻也和按下的时刻一样长。我不确定这是不是一个好的设法,可是就是那样的。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |