欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 前端技术 > javascript >内容正文

javascript

一文搞定js事件基础与进阶 -凯发k8官方网

发布时间:2024/10/14 javascript 36 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 一文搞定js事件基础与进阶 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.事件简介
2.事件的调用方式
        在script标签中使用
        在元素中调用
3.鼠标事件
        鼠标点击
        鼠标移入移除
        鼠标按住松开
4.键盘事件
5.表单事件
        onfocus和onblur
        onselect
        onchange
6.编辑事件
        oncopy
        onselectstart
        oncontextmenu
7.页面事件
        onload
        onbeforeunload
8.事件监听器
9.event对象

举个例子,当我们点击一个按钮时,会弹出一个对话框。其中“点击”就是一个事件,“弹出对话框”就是我们在点击这个事件里面做的一些事情。事件一般是用户对页面的一些‘小动作’引起的,如点击鼠标移动鼠标,js里边常见的事件一般有五种:

  • 鼠标事件
  • 键盘事件
  • 表单事件
  • 编辑事件
  • 页面事件
  • 2.1在script标签里边调用
    obj.事件名 = function() {…… };

    obj是一个dom对象

    2.2在元素中调用事件

    例子:

    3.1鼠标事件简介
    3.2鼠标点击

    例子:结合div模拟按钮

    3.3鼠标移入移除

    例子:

    3.4鼠标的按下和松开

    键盘按下:onkeydown
    键盘松开:onkeyup

    例子1:统计输入字符长度(用两张事件都行只是一个是按下统计一个松开后统计)

    5.1onfocus和onblur

    onfocus:表示获取焦点触发的事件
    onblur:表示失去焦点触发的事件

    例子1:

    默认的情况需要我们点击文本框才能自动获取焦点,那么我们也可以让他们自动获取焦点,用==focus()==方法就行

    例子2:自动获取焦点

    5.2onselect

    当我们选中单行或者多行文本框的时候,就会触发此类事件

    例子:手动选中文本框触发事件

    其实我们可以自动选中文本框,可以用select() 方法,看下面例子

    5.3onchange

    用于具有多个选项的表单元素的操作

    例子1:单选框选择某一项的时候触发

    例子2:复选框的全选和反选


    例子3:下拉列表:

    6.1oncopy

    oncopy表示不能复制

    例子:文字不能进行复制

    6.2onselectstart

    onselectstart防止页面内容被选取

    例子:文字内容不可被选中

    6.3oncontextmenu

    oncontextmenu禁止使用鼠标右键

    例子:可以选中但是不能使用鼠标右键进行复制气不气

    7.1onload

    onload表示文档加载完成后再执行一个事件

    我们看下面一段代码:

    我们这一段代码点击提交的时候浏览器是会报错的,这是由于在默认的情况下,浏览器是从上到下来解析一个页面的,当解析到var obtn = document.getelementbyid("btn");的时候就会报错因为找不到id为btn的元素在哪,那么正确的使用方法是:

    当浏览器解析到window.onload时就不会解析window.onload内部的代码而是继续往下解析,直到把整个文档解析完毕后在回去解析window.onload内部的代码

    7.2onbeforeunload

    onbeforeunload表示离开页面之前触发的一个事件

    我们看一个例子:

    这是刚开始运行的时候。当我们关闭页面时会出现如下(具体的e是啥会在event对象里边讲):

    我们直接看一个例子(下面是我第一次点击按钮出现的画面):


    我们在给一个按钮添加三次onlick事件,但是js只会执行第三次,所以 事件处理器 是不能为同一元素添加多个事件的,那么这时候就需要我们的事件监听器

    所谓的事件监听器指的是使用addeventlistener()方法为元素添加一个事件,我们又称为绑定事件

    语法:

    obj.addeventlistener(type,fn,false)
    1.obj是一个dom对象
    2.type是一个字符串指的是事件类型如单击事件click等,注意这里的事件类型是不需要加上on作为前缀的
    3.fn是一个函数名(匿名函数或者函数名)
    4.false表示事件冒泡阶段调用(高级内容不详细说明)

    例子1:addeventlistener()方法的使用

    例子2:对同一元素添加多个事件


    点击按钮后会依次弹出三个对话框

    例子3:多次调用window.onload

    我们会发现只有我们多次使用window.onload时会发现只会执行第三个window.onload,我们也可以用
    addeventlistener()方法方法来解决


    那么我们既然可以使用addeventlistener()方法绑定事件,那么也可以解除绑定某一个事件

    语法:obj.removeeventlistener(type,fn,false)
    注意这里的fn只能是函数名

    例子:解除事件监听器添加的事件

    当我们直接点击文字部分就会变成粉色,当我们点击解除按钮的时候,再点击文字就不会变成粉色

    注意这里的removeeventlistener()方法只能解除事件监听器添加的事件不能解除事件处理器添加的事件

    当然我们也可以解除事件处理器添加的事件,如下例子:

    当一个事件发生后,有关的这个事件的详细的信息都会临时保存在一个指定的地方,这个地方就是event对象

    event常用属性:

    例子1:type获取事件的类型

    这个e是以什么玩意,实际上我们每次调用一个事件的时候js就会默认的给这个事件函数加上一个隐形的参数,这个参数就是event对象,一般来说event对象是作为事件函数的第一个参数,e只是一个变量名,它存储着一个event对象

    例子2:keycode获取键对应的键码

    常用按键的键码:

    按键键码
    w87
    s83
    a65
    d68
    上箭头38
    下箭头40
    左箭头37
    右箭头39

    如果是shift,ctrl,alt这几个键我们不需要使用keycode来获取,之间通过shiftkey,ctrlkey,altkey这三个属性来获取

    例子3:获取上下左右方向键

    我们在点击各个方向的时候会显示相应的方向的汉字

    总结

    以上是凯发k8官方网为你收集整理的一文搞定js事件基础与进阶的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

    网站地图