js的event详解

event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。
例子

下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript">
        function cancelLink() {
            if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
                window.event.returnValue = false;
        }
    </script>
</head>
<body onclick="cancelLink()">
    <form id="form1" runat="server">
    <div>
    <input type="text" id="a" onkeyup="tt()"/>
    </div>
    </form>
</body>
</html>

下面的例子在状态栏上显示鼠标的当前位置。

<body onmousemove="window.status = ‘X=‘ + window.event.x + ‘ Y=‘ + window.event.y">

属性:

altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX, 
screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y

1.altKey

描述:检查alt键的状态。

语法:event.altKey

可能的值:当alt键按下时,值为 TRUE ,否则为 FALSE 。只读。

2.button
描述:检查按下的鼠标键。

语法:event.button

可能的值:
0 没按键
1 按左键
2 按右键
3 按左右键
4 按中间键
5 按左键和中间键
6 按右键和中间键
7 按所有的键

这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。

3.cancelBubble
描述:检测是否接受上层元素的事件的控制。

语法:event.cancelBubble[ = cancelBubble]

可能的值:
这是一个可读写的布尔值:

TRUE 不被上层原素的事件控制。
FALSE 允许被上层元素的事件控制。这是默认值。

例子:
下面的代码片断演示了当在图片上点击(onclick)时,如果同时shift键也被按下,就取消上层元素(body)上的事件onclick所引发的showSrc()函数。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script>
        function checkCancel() {
            if (window.event.shiftKey)
                window.event.cancelBubble = true;
        }
        function showSrc() {
            if (window.event.srcElement.tagName == "IMG")
                alert(window.event.srcElement.src);
        }
    </script>
</head>
<body onclick="showSrc()">
    <img onclick="checkCancel()" src="/sample.gif">
</body>
</html>

4.clientX
描述:返回鼠标在窗口客户区域中的X坐标。

语法:event.clientX

注释:这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

5.clientY
描述:返回鼠标在窗口客户区域中的Y坐标。

语法:event.clientY

注释:这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

6.ctrlKey
描述:检查ctrl键的状态。

语法:event.ctrlKey

可能的值:当ctrl键按下时,值为 TRUE ,否则为 FALSE 。只读。

7.fromElement
描述:检测 onmouseover 和 onmouseout 事件发生时,鼠标所离开的元素。 参考:18.toElement

语法:event.fromElement

注释:这是个只读属性。

8.keyCode
描述:检测键盘事件相对应的内码。这个属性用于 onkeydown, onkeyup, 和 onkeypress 事件。

语法:event.keyCode[ = keyCode]

可能的值:这是个可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为 0 。

9.offsetX
描述:检查相对于触发事件的对象,鼠标位置的水平坐标

语法:event.offsetX

10.offsetY
描述:检查相对于触发事件的对象,鼠标位置的垂直坐标

语法:event.offsetY

11.propertyName
描述:设置或返回元素的变化了的属性的名称。

语法:event.propertyName [ = sProperty ]

可能的值:sProperty 是一个字符串,指定或返回触发事件的元素在事件中变化了的属性的名称。这个属性是可读写的。无默认值。

注释:你可以通过使用 onpropertychange 事件,得到 propertyName 的值。

例子:下面的例子通过使用 onpropertychange 事件,弹出一个对话框,显示 propertyName 的值。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">
        function changeProp() {
            btnProp.value = "This is the new VALUE";
        }

        function changeCSSProp() {
            btnStyleProp.style.backgroundColor = "aqua";
        }
    </script>
</head>
<body>
    <p>
        The event object property propertyName isused here to return which property has been altered.
    </p>
    <input type="button" id="btnProp" onclick="changeProp()" value="Click to change" onpropertychange="alert(event.propertyName)">
    <input type="button" id="btnStyleProp" onclick="changeCSSProp()" value="Click to change the CSS" onpropertychange="alert(event.propertyName)">
</body>
</html>

12.returnValue
描述:设置或检查从事件中返回的值

语法:event.returnValue[ = Boolean]

可能的值:true 事件中的值被返回,false 源对象上事件的默认操作被取消,例子见本文的开头。

13.screenX
描述:检测鼠标相对于用户屏幕的水平位置

语法:event.screenX

注释:这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

14.screenY
描述:检测鼠标相对于用户屏幕的垂直位置

语法:event.screenY

注释:这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

15.shiftKey
描述:检查shift键的状态。

语法:event.shiftKey

可能的值:当shift键按下时,值为 TRUE ,否则为 FALSE 。只读。

16.srcElement
描述:返回触发事件的元素。只读。例子见本文开头。

语法:event.srcElement

17.srcFilter
描述:返回触发 onfilterchange 事件的滤镜。只读。

语法:event.srcFilter

18.toElement
描述:检测 onmouseover 和 onmouseout 事件发生时,鼠标所进入的元素。 参考:7.fromElement

语法:event.toElement

注释:这是个只读属性。

例子:下面的代码演示了当鼠标移到按钮上时,弹出一个对话框,显示“mouse arrived”

<script>
    function testMouse(oObject) {
        if (oObject.contains(event.toElement)) {
            alert("mouse arrived");
        }
    }
</script>
<button id="oButton" onmouseover="testMouse(this)">Mouse Over This.</button>

19.type
描述:返回事件名。

语法:event.type

注释:返回没有“on”作为前缀的事件名,比如,onclick事件返回的type是click只读。

20. x
描述:返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。

语法:event.x

注释:如果事件触发后,鼠标移出窗口外,则返回的值为 -1,这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

21. y
描述:返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。

语法:event.y

注释:如果事件触发后,鼠标移出窗口外,则返回的值为 -1,这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

时间: 2024-11-10 00:16:31

js的event详解的相关文章

JS事件类型详解

一般事件 onclick IE3.N2 鼠标点击时触发 此事件 ondblclick IE4.N4 鼠标双击时触发 此事件 onmousedown IE4.N4 按下鼠标时触发 此事件 onmouseup IE4.N4 鼠标按下后松开鼠标时触发 此事件 onmouseover IE3.N2 当鼠标移动到某对象范围的上方时触发 此事件 onmousemove IE4.N4 鼠标移动时触发 此事件 onmouseout IE4.N3 当鼠标离开某对象范围时触发 此事件 onkeypress IE4.

js new date详解

创建一个日期对象: var objDate=new Date([arguments list]); var ini_date=new Date(2014,7,0); //是代表7月最后一天 ,也就是2014-07-31 var ini_date=new Date(2014,7,1); //是代表8月第一天 ,也就是2014-08-01参数形式有 以下5种: new Date("month dd,yyyy hh:mm:ss");   new  Date("month dd,yy

【JS】☆★之详解[Object HTMLDivElement]和[Object Object]

[JS]☆★之详解[Object HTMLDivElement]和[Object Object] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

Js apply 方法 详解

Js apply方法详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和call的区别在哪里 2.        什么情况下用apply,什么情况下用call 3.        apply的其他

Node.js继承中的静态类对象(《node.js开发实战详解》书中一些错误的改正)

今天气真好,最近挂掉一些面试之后心情略失落. 神马都是浮云,要永远做好世界第二. 不多提了,你问我心态为啥变好了.-------都是情怀,,. 嗯啊,最近在研究node. 别人问?你这水平还node... 哈哈哈,好伤心.... 不多提了,言归正传. 神马模块化神马的先就不多讲了,就一个module.export和export区别,后者对象的属性属于前者,逆命题不成立. 还有util.inherits(A,B)这个API注意一下A只会继承B的原型方法,原型以外的不会继承.不是说原型中数据是共享的

JS变量对象详解

JS变量对象详解 开年之后工作热情一直不是很高,这几天一直处于消极怠工状态.早上不想起床,起床了不想上班.明明放假之前工作热情还一直很高,一直心心念念的想把小程序项目怼出来,结果休假回来之后画风完全不一样了.我感觉自己得了严重了节后综合征.还好撸了几篇文章,勉强表示这一周的时间没有完全浪费.这篇文章要给大家介绍的是变量对象. 在JavaScript中,我们肯定不可避免的需要声明变量和函数,可是JS解析器是如何找到这些变量的呢?我们还得对执行上下文有一个进一步的了解. 在上一篇文章中,我们已经知道

html/JS onload的详解

等待页面都加载完后再执行 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> // window.onload=function(){ // alert(exist("get

IE 与 FireFox 的 event 详解 (转)

原文链接 FF的FIREBUG,不仅能测试JS还能检查CSS错误,是一般常用的. 但它主要检查FF方面的错误,对IE就无能为力了. 要测试IE,就用ieTester,它可以测试IE几乎所有版本(1.0恐怕也用不到测试了),用法也很方便. 至于JS对不同浏览器的兼容注意事项,的确很多,下面给你的也只是部分,一般建议还是采用jquery,prototype等一些已经处理好了兼容的脚本库,更重要的是,它们简化了很多操作,还提供了平常你很难实现的增强功能.可以去搜搜这方面的说明文章. JS兼容浏览器FF

OC与JS的交互详解

事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML.除此之外,还需要禁用获取的HTML文本中自带的 < img > 标签自动加载,并把下载图片的操作放在native端来处理,并通过JS将图片在Cache中的地址返回给UIWebview. 之所以要把图片操作放在