Javascript中的事件

174 阅读2分钟

Javascript中的事件

1.什么是事件?

事件是在编程时系统内发生的动作或者发生的事情,比如用户在网页上单击一个按钮

2.什么是事件的监听?

​ 就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 注册事件

语法书写:

元素.addEventListener('事件类型',执行函数)

   <script>
  //获取事件源
        let btn = document.querySelector('.btn1')
        //注册事件
        btn.addEventListener('click',function () {
            alert('恭喜你点击按钮')
        });
       
       //1.注意事项 事件类型需要加''
       //2.函数是点击之后再去执行,每次点击都会执行一次

   </script>

事件监听的三要素

1.事件源: 那个dom元素被事件触发了,要获取dom元素

2.事件: 用什么方式触发,比如鼠标单击 click、鼠标经过 mouseover 等

3.事件调用的函数: 要实现什么功能业务

3.用事件监听做的随机点名案例

需求:

点击第一个按钮,页面随机出现名字

点击第二按钮,页面没有名字生成

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>我是谁?
    </h1>

    <button class="btn1">开始随机点名了</button>

    <button class="btn2">停止点名了</button>

    <script>

        let arr =['赵云','马超','曹操','小白','炮灰','黄忠']

        let btn1 = document.querySelector('.btn1')

        let h1 = document.querySelector('h1')

        let btn2 = document.querySelector('.btn2')

        //第一个按钮事件
        btn1.addEventListener('click',function () {
           
            let name = arr[parseInt(Math.random()*arr.length)]
            h1.innerHTML=`${name}`
        })

        btn2.addEventListener('click',function () {
            h1.innerHTML=`不要选我啊`
        })

    </script>
</body>
</html>

4.常见的一些鼠标事件类型

1.click 鼠标点击左键触发

2.mouseover 鼠标经过触发

3.mouseout 鼠标离开触发

4.focusr 获得鼠标焦点触发

5.blur 失去鼠标焦点触发

6.mousemove 鼠标移动触发

7.mouseup 键盘弹起触发

8.mousedown 键盘按下触发

5.编程思想中的排他思想

1.目地

让当前元素为A状态,其他元素为B状态

2.使用步骤

1.遍历所有的对象

​ for 循环 让所有元素设置一样的样式

2.单独给自己设置另一种样式

​ 通过this或者下标找到自己或者对应的元素

6.使用排他思想做的案例

需求:

点击一个li标签,li标签颜色变成红色,每次点击li仅有当前li显示红色颜色,其他字体不显示红色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

        ul {
            list-style: none;
        }


    </style>
</head>
<body>
    <ul>
        <li>我是1号</li>
        <li>我是2号</li>
        <li>我是3号</li>
        <li>我是4号</li>
        <li>我是5号</li>
    </ul>

    <script>
        //获取事件源
    let li = document.querySelectorAll('li')
        //遍历每个对象都注册事件
        for (let i = 0; i < li.length; i++) {
           li[i].addEventListener('click',function () {

            //除去所有对象的颜色属性
                for (let i = 0; i < li.length; i++) {
                    li[i].style.color=''
                }
                //单独给自本身添加属性
                this.style.color='red'
               
           })
        }
    

    </script>
</body>
</html>