JavaScript中事件详解

事件:在浏览器中触发特定任务时的行为。

定义触发方式:

1.静态:html标签的事件属性赋予事件响应代码

//onclick:单击事件
<input type="button"  onclick="hello()"/>

<script>
    function hello() {

    alert("hello 单击事件!");

    }
</script>

2.动态获取:使用js 代码得到标签的 DOM对象,然后通过DOM对象.事件名=function(){执行代码}

<body>
<div id="divA" style="width:500px;height:500px;background-color: aqua"></div>
<script>
   var divv= document.getElementById("divA");
   divv.onclick = function(){
        alert('单击事件触发')
}
</script>
</body>

1.鼠标事件

        单击事件:onclick

        双击事件:ondblclick

<script>
    window.onclick = function () {
        console.log("鼠标单击事件");
    }

    window.ondblclick = function () {
        console.log("鼠标双击事件");
    }
</script>

        鼠标按下按钮时事件

<script>
    window.onmousedown = function () {
        console.log("当鼠标按钮按下运行时");
    }
</script>

        鼠标松开按钮时事件

<script>
    window.onmouseup = function () {
        console.log("当鼠标按钮松开时");
    }
</script>

        当鼠标移入(onmouseover)---移出(onmouseout)时  不能阻止冒泡

<body>

<div 
     //鼠标移入时
     onmouseover="divMouseover()"
    //鼠标移出时
     onmouseout="divMouseout()"
     style="width: 300px;height: 300px;background: red">
        <div onmouseover="divMouseover()"
         onmouseout="divMouseout()"
         style="width: 100px;height: 100px;background: pink">
        </div>
</div>

    <script>
     /* onmouseover 当鼠标移入时  不能阻止冒泡  */
        function divMouseover() {
        console.log("当鼠标进入了当前的DIV");
        }

        /* onmouseout : 当鼠标移出时  不能阻止冒泡*/
        function divMouseout() {
            console.log("当鼠标移出了当前的DIV");
        }
    </script>
</body>

 当鼠标移入(onmouseenter)---移出(onmouseleave)时  能阻止冒泡

<div onmouseenter="divMouseenter()"
     onmouseleave="divMouseleave()"
     style="width: 300px;height: 300px;background: red">
    <div onmouseenter="divMouseenter()"
         onmouseleave="divMouseleave()"
         style="width: 100px;height: 100px;background: pink">
    </div>
</div>
<script>
    /* onmouseenter : 可以阻止事件冒泡 */
    function divMouseenter() {
        console.log("当鼠标进入了当前的DIV");
    }
     // onmouseleave : 可以阻止事件冒泡
    function divMouseleave() {
        console.log("当鼠标移出了当前的DIV");
    }

</script>


</body>

        当滚动元素的滚动条滚动时---鼠标滚轮滚动时

<body>
<div id="box" style="overflow: scroll;width: 200px;height: 200px;">
这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
    这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
</div>

<script>
    document.getElementById("box").onscroll = function () {
        console.log("当滚动元素的滚动条运行时");
    }
    /* 当鼠标的滚轮运行时 */
    window.onmousewheel=function (){
        console.log("当鼠标的滚轮运行时");
    }

</script>


</body>

2.键盘事件

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0px;
            padding: 0px;
        }
        .divStyle {
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
        }
    </style>
</head>
<body>
<div id="box" class="divStyle">

</div>

<script>
       /*  键盘按下事件 */
       window.onkeydown = function (event) {
           /* 解决兼容问题 */
           event = event || window.event;
           console.log("键盘按下了" + event.keyCode);
           if (event.keyCode == 13) {
               console.log('按下了回车');
           }
       }

    /* onkeyup: 当松开按键时 触发 */
    window.onkeyup = function (event) {

        event = event || window.event;

        console.log("键盘按下了" + event.keyCode);
        if (event.keyCode == 13) {
            console.log('按下了回车');
        }
    }

    /* 键盘 按下并松开时*/
    window.onkeypress = function (event) {
        event = event || window.event;
        console.log("键盘按下了" + event.keyCode);
        if (event.keyCode == 13) {
            console.log('按下了回车');
        }
    }

    var box = document.getElementById("box");
    document.onkeydown = function (event) {
        event  = event ||window.event;

        switch (event.keyCode) {
            case 37:
                box.style.left = box.offsetLeft - 10+'px';
                break;
            case 39:
                box.style.left = box.offsetLeft + 10+'px';
                break;
            case 38:
                box.style.top = box.offsetTop - 10+'px';
                break;
            case 40:
                box.style.top = box.offsetTop + 10+'px';
                break;
        }
    }
</script>

</body>

3.窗口事件

        1.失去焦点事件 : onblur

<script>
    window.onblur = function (){
        // alert('患失');
        console.log('患失');
    }
</script>

        2.得到焦点事件:onfocus

<script>
    window.onfocus = function (){
        // alert('患得');
        console.log('患得');
    }
</script>

        3.加载完成事件:onload

<script>
    window.onload = function () {
        alert('完活,下班');
    }
</script>

        4.窗口大小改变事件:onresize

<script>
    window.onresize = function () {
        alert('看我七十二变变大小');
    }
</script>

4.文本框使用事件

        定义使用的标签

<body>
<form action="内置对象.html" id="form" method="get">
    <label>账号:</label><input type="text" id="userName" value="这个是默认值" /><br/><br/>
    <label>密码:</label><input type="password" id="pwd"/><br/><br/>
    <input type="submit">
    <input type="button" value="自定义的重置" id="butA">
    <input type="reset">
</form>
</body>

        1.失去、获得焦点事件

  <script>
    //获得焦点时文本框变色
    userName.onfocus = function () {
        this.style.backgroundColor = 'red';
    }
    //失去焦点时,文本框变色
    userName.onblur = function () {
        this.style.backgroundColor = 'pink';
    }
  <script>

        2.内容改变事件

<script>
    //内容改变事件(删减没有改变不触发)    onchange
    userName.onchange = function () {
        // alert(userName.value);
        console.log(userName.value);
    }
    //只要文本框发生变化就会触发 oninput
    userName.oninput = function () {
        console.log(userName.value)
    }
</script>

        3.表单未提交事件、文本被选中事件

<script>
    //表单未能提交时触发  oninvalid
    userName.oninvalid = function () {
        console.log('请完成表单');
    }
    //文本被选中时    onselect
    userName.onselect = function () {
        console.log('选我干啥')
    }
</script>

5.表单事件

        获取表单的Dom对象

<script>
    var form = document.getElementById('form');
</script>

        表单提交事件

<script>
        form.onsubmit = function () {
        var uName = document.getElementById("userName").value;
        var apwd = document.getElementById("pwd").value;
        //正则表达式判断
        var reg = /^[A-Za-z0-9]{6,12}$/;
        console.log("触发了表单的提交事件!");
        if (uName == '') {
            alert("账号不能为空");
        } else if (uName.length < 6 || uName.length > 12) {
            alert("账号长度错误");
        } else if (!reg.test(uName)) {
            alert("账号只能为字母与数字!");
        } else if (apwd == '') {
            alert("密码不能为空");
        } else if (apwd.length < 6 || apwd.length > 12) {
            alert("密码长度错误");
        } else if (!reg.test(apwd)) {
            alert("密码只能为字母与数字!");
        } else {
            return true;
        }
        // return true:可以提交  false 不能提交
        return false;
    }
</script>

        表单重置事件: form.reset();

以上就是JavaScript的事件总结,根据自己的业务情况响应补充代码就可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l1050188952

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值