JavaScript 事件类型

1.点击事件

click:鼠标按下弹起完成后触发
mousedown:属性按下瞬间触发
mouseup:鼠标弹起瞬间触发
dblclick:鼠标双击触发

<script>
    document.onclick= function(){
        console.log("click")
    }
    document.onmousedown= function(){
        console.log("mousedown")
    }
    document.onmouseup= function(){
        console.log("mouseup")
    }
    document.ondblclick= function(){
        console.log("dblclick")
    }
</script>

鼠标单击时控制台打印:(说明click要晚于mouseup)

mousedown
mouseup
click

鼠标双击时控制台打印:

mousedown
mouseup
click
mousedown
mouseup
click
dblclick

2.鼠标移动事件

mouseenter:仅在鼠标进入当前容器时触发(忽略子元素)
mouseleave:仅在鼠标离开当前容器时触发(忽略子元素)

mouseover:不仅在鼠标进入当前容器时触发,进入当前容器的子元素时也会触发
mouseout:不仅在鼠标离开当前容器时触发,离开当前容器的子元素时也会触发

PS:mouseover和mouseout把当前元素和他的子元素当成一个个独立的元素,鼠标在这些元素间移动切换时,每次都会触发mouseover和mouseout事件

<script>
    var box = document.querySelector("#box")
    box.onmouseenter= function(){
        console.log("mouseenter")
    }
    box.onmouseout= function(){
        console.log("mouseout")
    }
    box.onmouseover= function(){
        console.log("mouseover")
    }
    box.onmouseleave= function(){
        console.log("mouseleave")
    }
</script>

gif过程解析:
当鼠标进入父容器时,先触发了mouseover和mouseenter事件
接着鼠标进入子容器时,触发了mouseout和mouseover事件
鼠标离开子元素重新进入父容器时,触发了mouseout和mouseover事件
鼠标离开父容器时,触发了mouseout和mouseleave事件

3.change 事件

change 事件被<input>, <select>, 和<textarea> 元素触发
当用户提交对元素值的更改且失去焦点后触发

<body>
    <form action="">
        <input type="text">
        <br />
        性别:<input type="radio" value="男" name="gender1">男
        <input type="radio" value="女" name="gender">女
        <br />
        爱好:<input type="checkbox" value="看电影" name="hobby">看电影
        <input type="checkbox" value="听音乐" name="hobby">听音乐
        <input type="checkbox" value="听音乐" name="hobby">听音乐
        <div>
            <select name="city">
                <option value="北京">北京</option>
                <option value="广州">广州</option>
                <option value="深圳">深圳</option>
            </select>
        </div>
        <div>
            <textarea name="" id="" cols="30" rows="10"></textarea>
        </div>
    </form>
</body>
<script>
    var inputs = document.querySelectorAll("input")
    var select = document.querySelector("select")
    var textarea = document.querySelector("textarea")
    for(var i=0;i<inputs.length;i++){
        inputs[i].onchange = function(){
            console.log("change value=" + this.value)
        }
    }
    select.onchange = function(){
        console.log("change value=" + this.value)
    }
    textarea.onchange = function(){
        console.log("change value=" + this.value)
    }
</script>

4.键盘事件

keydown:某个键盘按键被按下时触发(如果按着不动,会持续触发)
press:某个键盘按键被按下并松开时触发(如果按着不动,会持续触发)
keyup:某个键盘按键被松开时触发

要想知道是按下了哪个键,可以用事件对象获取:
event.key 按键名
event.keyCode 按键码

<script>
    document.onkeydown = function(e){
        console.log("keydown")
        //获取按键码
        console.log(e.keyCode)//87
        // 获取按键名称
        console.log(e.key) //w
    }
    document.onkeypress = function(e){
        console.log("press")
    }
    document.onkeyup = function(e){
        console.log("keyup")
    }
</script>

5.focus和blur 获取焦点和失去焦点时触发

当浏览器切换了当前页面时,会触发window.onfocus或window.onblur事件
这两个事件一般用在input输入框中

<script>
    //监听input输入框 获取和失去 焦点
    var input = document.querySelector("input")
    input.onfocus = function(){
        console.log("input focus")
    }
    input.onblur = function(){
        console.log("input blur")
    }
    // 监听页面切换
    window.onfocus = function(){
        console.log("window focus")
    }
    window.onblur = function(){
        console.log("window blur")
    }
</script>

原文地址:https://www.cnblogs.com/OrochiZ-/p/11626056.html

时间: 2024-10-11 08:27:06

JavaScript 事件类型的相关文章

JavaScript事件类型

JavaScript事件类型 Web浏览器中可能发生的事件有很多类型.这里我将主要将下面几种常用的事件类型: UI事件 焦点事件 鼠标与滚轮事件 键盘与文本事件 复合事件 变动事件 HTML5事件 设备事件 触摸与手势事件 第一部分:UI事件 UI事件中UI即(User Interface,用户界面),当用户与页面桑拿的元素交互时触发. UI事件中主要包括load,unload,abort,error,select,resize,scroll事件. 1.load事件 此事件为当页面完全加载完之后

javascript事件类型之界面拖拽交互

一.在线DEMO 界面拖拽交互 二.关于事件对象中的clientX(Y).pageX(Y).screenX(Y).offsetX(Y)的区别 关于clientX(Y).pageX(Y).screenX(Y)我有如下总结: screenX >clientX = pageX screenY>pageY>=clientY(当页面没有滚动的时候pageY和clientY相等) 三.测试代码 IE事件中没有pageX(Y)事件,但是可以通过分别获取clientX(Y).scrollLeft(Top

javascript事件类型汇总

事件类型: onblur onchange onclick ondblclick onerror onfocus onkeydown onkeypress onkeyup onload onmousedown onmouseenter onmouseleave onmousemove onmouseout onmouseover onmouseup onresize onscroll onselect onsubmit //这些事最常用的事件(在页面上) onblur ,onchange,onc

js事件类型

JavaScript事件类型 Web浏览器中可能发生的事件有很多类型.这里我将主要将下面几种常用的事件类型: UI事件 焦点事件 鼠标与滚轮事件 键盘与文本事件 复合事件 变动事件 HTML5事件 设备事件 触摸与手势事件 第一部分:UI事件 UI事件中UI即(User Interface,用户界面),当用户与页面桑拿的元素交互时触发. UI事件中主要包括load,unload,abort,error,select,resize,scroll事件. 1.load事件 此事件为当页面完全加载完之后

javaScript事件(八)事件类型之变动事件

DOM2级的变动(mutation)事件能在DOM中某一部分发送变化时给出提示.变动事件为XML或HTML DOM设计的,并不特定于某种语言.DOM2级定义了如下变动事件. DOMSubtreeModifined:在DOM结构发生任何变化的时候.这个事件在其他事件触发后都会触发. DOMNodeInserted:当一个节点作为子节点被插入到另一个节点中时触发. DOMNodeRemoved:在节点从其父节点中移除时触发. DOMNodeInsertedIntoDocument:在一个节点被直接插

《JAVASCRIPT高级程序设计》事件处理程序和事件类型

一.事件流 谈到事件,首要要理解事件流的概念:事件流是指从页面接受事件的顺序:“DOM2级事件”规定事件流包括三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段.目前大部分的浏览器的事件流是事件冒泡,即最开始由具体的元素接收事件,然后逐级传播到不具体的节点,直到传播到windows对象:另一种事件流是事件捕获,目前使用得比较少,是指文档对象先接收到事件,然后逐级向下,一直传播到事件的实际目标. 二.事件处理程序 1.两种表示方式 <input type="button" valu

javaScript事件(九)事件类型之触摸与手势事件

一.触摸事件 touchstart:当手指触摸屏幕时触发:即使已经有一个手指放在了屏幕上也会触发. touchmove:当手指在屏幕上滑动时连续地触发.在这个世界发生期间,调用preventDefault()可以阻止滚动. touchend:当手指在屏幕上移开时触发. touchcancel:当系统停止跟踪触摸时触发.关于此事件的确切触发时间,文档中没有明确说明. 上面这几个事件都会冒泡,也都可以取消.虽然这些触摸事件没有在DOM规范中定义,但它们却是以兼容DOM的方式实现的.因此,每个触摸事件

JavaScript 中的事件类型5(读书笔记思维导图)

Web 浏览器中可能发生的事件有很多类型.如前所述,不同的事件类型具有不同的信息,而“ DOM3级事件”规定了以下几类事件. UI(User Interface,用户界面)事件:当用户与页面上的元素交互时触发:? 焦点事件,当元素获得或失去焦点时触发:鼠标事件:当用户通过鼠标在页面上执行操作时触发: 滚轮事件:当使用鼠标滚轮(或类似设备)时触发: 文本事件:当在文档中输入文本时触发: 键盘事件:当用户通过键盘在页面上执行操作时触发: 合成事件:当为 IME(Input Method Editor

JavaScript 中的事件类型1(读书笔记思维导图)

Web 浏览器中可能发生的事件有很多类型.如前所述,不同的事件类型具有不同的信息,而“ DOM3级事件”规定了以下几类事件. UI(User Interface,用户界面)事件:当用户与页面上的元素交互时触发:? 焦点事件,当元素获得或失去焦点时触发:鼠标事件:当用户通过鼠标在页面上执行操作时触发: 滚轮事件:当使用鼠标滚轮(或类似设备)时触发: 文本事件:当在文档中输入文本时触发: 键盘事件:当用户通过键盘在页面上执行操作时触发: 合成事件:当为 IME(Input Method Editor