首页 > 编程语言 >JavaScript事件

JavaScript事件

时间:2023-11-18 10:33:57浏览次数:28  
标签:触发 元素 dom JavaScript 事件 document event

JavaScript事件

键盘事件:keypress键盘事件,keyup抬起,keydown按下

文档:load加载

表单:focus获得焦点,blur失去焦点,submit提交事件,change改变事件

其他:scroll滚动事件,select start选择事件

1. event事件对象常见的属性和方法

e.target 返回触发事件的对象 标准
e.srcElement 返回触发事件的对象 非标准ie6-8使用
e.type 返回事件的类型,比如:click,mouseover 不带on
e.returnValue 该属性阻止默认事件(默认行为) ie6-8,比如不让链接跳转
e.preventDefault() 该属性阻止默认事件(默认行为)标准,比如不让链接跳转
e.stopPropagation() 阻止冒泡 【标准】
e.cancelBubble 阻止冒泡【ie】

2.鼠标事件 (只适用于PC端)

最重要: onclick onm ouseenter onm ouseleave

次重要: onm ousedown onm ouseup onm ousemove

dom.onclick 单击事件
dom.ondblclick 双击事件
dom.onmouseover 当鼠标悬停时(会冒泡)
dom.onmouseout 当鼠标悬停后离开时  (会冒泡)
dom.onmouseenter  当鼠标进入时 (不会冒泡)
dom.onmouseleave 当鼠标离开时 (不会冒泡)
dom.onmousedown 鼠标按下的时候触发的事件
dom.onmouseup 鼠标弹起触发的事件
dom.onmousemove 鼠标移动
dom.onwheel 鼠标滚轮滚动时

3. 键盘事件

onkeydown 键盘按键被按下发生的事件
​
onkeyup 键盘按键被松开发生的事件
​
onkeypress 键盘按键按下并松开发生的事件 (主键区)
​
oninput 事件在用户输入时触发

4. 与光标的事件

onfocus : 主要应用于文本框, 当获取输入焦点时
onblur: 主要应用于文本框,当失去输入焦点时
onchange: 失去输入焦点时,如果和上一次的值比较有改变就会触发 

5.表单事件

onsubmit提交按钮被点击
onreset重置按钮被点击
onselect文本内容被选定
onchange用户改变表单元素的内容
oninput在用户输入时触发

 

6. 移动端事件 (只适用于移动端)

touchsatrt:当手指触摸屏幕时触发,不管当前有多少只手指

touchmove:当手指在屏幕上滑动时连续触发,通常我们再滑屏页面,会调用event.preventDefault()

touchend:当手指离开屏幕时触发

touchcancel:系统通知跟踪触摸时候会触发。

7.单选框和复选框被选中

复选框是否被选中需要判断复选框中的checked的值 true:选中 false:没选中

all.onclick = function (){
        for(var n=0; n<sel.length; n++){
            console.log(all.checked);
            sel[n].checked = all.checked
        }
        total()
    }

 

阻止默认事件的发生

  1. 1 如果是使用 on+事件名 或者  attachEvent() 添加的事件 使用 return false;
<a href="http://www.baidu.com" class="box1">百度</a>

<script>
 var box1 = document.querySelector('.box1')
        box1.onclick = function (event){
            var e = event || window.event
            
            // 跳转京东
            window.location =  "http://www.jd.com"
           return false
        }
</script>

 

  1. 2 如果是使用 addEventListener 添加的事件 使用 event.preventDefault();
<a href="http://www.baidu.com" class="box1">百度</a>

<script>
 var box1 = document.querySelector('.box1')
       box1.addEventLister('click',function(event){var e = event || window.event
            
            // 跳转京东
            window.location =  "http://www.jd.com"
           return false
        })
</script>

加载事件

onload               页面或图像加载完成
onbeforeunload       页面卸载前执行

滚动事件

onscroll    窗口发生滚动
scrollTo    滚动到指定位置【增加】

1. clientWidth / clientHeight (只读)

元素padding + width / padding + height

2. offsetWidth / offsetHeight (只读)

获取元素的border + padding + width / border + padding + height

3. offsetLeft / offsetTop(只读)

4. offsetParent (只读)

绝对定位元素的祖先元素中,最近哪个元素有定位属性,这个元素就是它的offsetParent

 

  1. 文档可视区域高度(屏幕的高度) document.documentElement.clientHeight

  2. 文档高度(整个html页面的高度) document.documentElement.scrollHeight

  3. 文档滚动高度(标准浏览器生效) document.documentElement.scrollTop

  4. 文档滚动高度(IE浏览器有效) document.body.scrollTop

  5. 获得当前坐标的X,Y坐标 x=event.clientX;   Y=event.clientY

  6. 获取当前元素的宽度和高度,定位的left和top/元素上面内容的高度       

    height=ele.offsetHeight; width=ele.offsetWidth 

 

    left = ele.offsetLeft top = ele.offsetTop

 

    常用的尺寸获取方式:

  获取页面滚动上去的高度:document.documentElement.scrollTop/document.body.scrollTop

  获取当前元素的宽度和高度:ele.offsetHeight/ele.offsetWidth

  获取窗口的宽度和高度:window.innerHeight

  获取文档的宽度和高度:document.documentElement.scrollHeight

e.target和this的区别

区别: e.target返回的是触发事件的对象(元素)

this 返回的是绑定事件的对象(元素)

e.currentTarget 当前绑定事件的元素

 

标签:触发,元素,dom,JavaScript,事件,document,event
From: https://www.cnblogs.com/c-pp/p/JavaScript_7.html

相关文章

  • JavaScript事件
    一、  JavaScript事件在前端中,页面的每次交互和特效都是一个事件,其中任何一个html元素都是一个事件源,一个很事件源可以添加多个事件。二、事件中的event对象  只要发生一个事件就会产生一个event事件,event代表事件的状态1、event事件常见的属性和状态2、阻止默认事件的......
  • 11.17 复习JavaScript红宝书的笔记——
    一、原始值与引用值对于原始值和引用值的判断类型各自有对应的操作符,前者可以用typeof操作符lets="Nicholas";letb=true;leti=22;letu;letn=null;leto=newObject();console.log(typeofs);//stringconsole.log(typeofi);//numberconsole......
  • JavaScript-键盘事件
    键盘事件的种类键盘事件由用户击打键盘触发,主要有keydown、keypress、keyup三个事件,它们都继承了KeyboardEvent接口。keydown:按下键盘时触发。keypress:按下有值的键时触发,即按下Ctrl、Alt、Shift、Meta这样无值的键,这个事件不会触发。对于有值的键,按下时先触发keydown事件,再触发......
  • javascript 自定义分页组件
    仿boostrap前端分页组件的实现一 写一个前端自定义分页组件,需要考虑以下问题  /*     需要一个<ul id="pagination"></ul>标签   total; // 总数据的数量   pageSize; // 一页显示数量   pageIndex; // 当前页   */ 二实现细节编写html......
  • (javascript)将ztree树结构的数据转成二维数组
    ztree树结构的数据结构如下:[{"id":3990,"name":"泡沫灭火","iconShow":false,"children":[{"id":8616,......
  • JavaScript之splice()
    参考:https://blog.csdn.net/weixin_45726044/article/details/120151153概述splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。一个参数splice(index)——>从index的位置开始,删除之后的所有元素(包括......
  • 在React 中如何处理事件?
    在React中处理事件有几种常见的方式,具体取决于你使用的是类组件还是函数组件。一:类组件中处理事件:在类组件中,可以通过在JSX中使用内联函数或在类中定义事件处理方法来处理事件。1:内联函数:在JSX中直接使用内联函数处理事件。例如,使用onClick处理点击事件:classMyComponente......
  • javascript postMessage给子页面发消息
    发送消息页面<!DOCTYPEhtml><html><head><title>demo</title><metacharset="utf-8"/><script>varchildwinconstchildname="popup"functionopenChild(){......
  • js给多个具有相同class的元素绑定同一个事件或者样式
    <buttonclass="btn1">month1</button><buttonclass="btn1">month2</button><buttonclass="btn1">month3</button>若要给上面3个都具有btn1的class的按钮,添加同样的点击事件,则如下操作:$(".btn1").each(function(){......
  • 11.16 基本完成个人任务管理系统项目后重新复习JavaScript高级程序设计——声明var与l
    我看的是js高级程序设计第四版,前两章快速了解了一下,第三章开始慢啃,虽然内容枯燥,很多东西自己也知道了,但还是有一些收获的。比如,声明变量的三个关键词:var、let、const;var以前经常用但是会出问题,相比let没有那么严谨(var声明范围函数作用域,而let声明范围块级作用域)。看个例子:这是v......