js事件及其常用的事件种类

274 阅读5分钟

js事件

什么是事件

一个事件的组成

触发谁的事件:事件源

触发什么事件:事件类型

触发后做什么:事件处理函数

 btn(元素).onclick = function(){}
触发谁的事件:btn 事件源:btn(元素)
触发什么事件:onclick 事件类型:click
触发后做什么:function(){} 事件处理函数:function(){}

鼠标事件

鼠标左键事件

单击事件

语法:

元素.onclick = function(){}

var div = document.querySelector('div')//获取第一个div

div.onclick = function(){console.log('鼠标单击时触发')}

上述代码表示当鼠标左键点击获取到的div时会运行事件里的代码控制台就会打印出 '鼠标单击时触发' 这段文字

双击事件

语法:

元素.ondblclick = function(){}

var div = document.querySelector('div')

div.ondblclick = function(){console.log('鼠标双击时触发')}

上述代码表示当鼠标左键双击获取到的div时会运行事件里的代码控制台就会打印出 '鼠标双击时触发' 这段文字

鼠标按下事件

语法:

元素.onmousedown = function(){}

注意:此事件鼠标按下时,不管抬不抬起都会触发

var div = document.querySelector('div')

div.onmousedown = function(){console.log('鼠标按下时触发')}

上述代码表示当鼠标左键在获取到的div里按下时会运行事件里的代码控制台就会打印出 '鼠标按下时触发' 这段文字

鼠标抬起事件

语法:

元素.onmouseup = function(){}

var div = document.querySelector('div')

div.onmouseup = function(){console.log('鼠标抬起时触发')}

上述代码表示当鼠标左键在获取到的div里按下后抬起时会运行事件里的代码控制台就会打印出 '鼠标按下时触发' 这段文字

鼠标右键事件

单击事件

语法:

元素.oncontextmenu = function(){}

var div = document.querySelector('div')

div.oncontextmenu = function(){console.log('鼠标右击触发')}

上述代码表示当鼠标右键单击获取到的div时会运行事件里的代码控制台就会打印出 '鼠标右击触发' 这段文字

鼠标移入事件

语法1:

元素.onmouseover = function(){}

var div = document.querySelector('div')

div.onmouseover = function(){console.log('鼠标移入时触发')}

上述代码表示当鼠标移入获取到的div里时会触发事件代码,控制台就会打印出 '鼠标移入时触发' 这段文字

注意:此方法如果div里还包含着一个子元素时,当鼠标从父元素移入到子元素时,也会触发这个事件

语法2:

元素.onmouseenter = function(){}

var div = document.querySelector('div')

div.onmouseenter = function(){console.log('鼠标移入时触发')}

上述代码表示当鼠标移入获取到的div里时会触发事件代码,控制台就会打印出 '鼠标移入时触发' 这段文字

注意:此方法在移入子元素时不触发

鼠标移出

语法1:

元素.onmouseout = function(){}

var div = document.querySeiector('div')

div.onmouseout = function(){console.log('鼠标移出时触发')}

上述代码表示当鼠标移出获取到的div里时会触发事件代码,控制台就会打印出 '鼠标移入时触发' 这段文字

注意:此方法如果div里还包含着一个子元素时,当鼠标从父元素移入到子元素时,也会触发这个事件

语法2:

元素.onmouseleave = function(){}

var div = document.querySeiector('div')

div.onmouseleave = function(){console.log('鼠标移出时触发')}

上述代码表示当鼠标移出获取到的div里时会触发事件代码,控制台就会打印出 '鼠标移入时触发' 这段文字

注意:此方法在移入子元素时不触发

键盘事件

注意:键盘事件只有两个元素可以触发

1.document(当前文档)

2.input(输入框)

键盘抬起事件

语法:

document / input元素.onkeyup = function(){}

document.onkeyup = function(){console.log('键盘抬起时触发')}

上述代码表示在当前文档按下键盘上的任意键抬起后会触发事件,然后就会将字符串 '键盘抬起时触发' 打印到控制台上

键盘按下事件

语法:

document / input元素.onkeydown = function(){}

document.onkeydown = function(){console.log('键盘按下时触发')}

上述代码表示在当前文档按下键盘上的任意键后会触发事件,然后就会将字符串 '键盘按下时触发' 打印到控制台上

键盘按下抬起事件

语法:

document / input元素.onkeypress = function(){}

document.onkeypress = function(){console.log('键盘按下抬起时触发')}

上述代码表示在当前文档按下键盘上的任意键抬起后会触发事件,然后就会将字符串 '键盘按下抬起时触发' 打印到控制台上

表单事件

注意:此事件只有表单元素才能使用

获得焦点事件

语法:

表单元素.onfocus = function(){}

var inp = document.querySelector('input')//获取表单元素

inp.onfocus = function(){console.log('获取焦点时触发')}

上述代码表示当input获取焦点时触发事件,将字符串 '获取焦点时触发' 打印到控制台

失去焦点事件

语法:

表单元素.onblur = function(){}

var inp = document.querySelector('input')

inp.onblur = function(){console.log('失去焦点时触发')}

上述代码表示当inpu失去焦点时触发事件,将字符串 '失去焦点时触发' 打印到控制台

文本框内容改变事件(且失去焦点后触发)

语法:

表单元素.onchange = function(){}

var inp = document.quserySelector('input')

inp.onchange = function(){console.log('文本框内容改变且失去焦点后触发')}

上述代码表示当文本框内容发生改变且失去焦点时触发事件,将字符串 '文本框内容改变且失去焦点后触发' 打印到控制台

文本框内容发生改变时触发

语法:

表单元素.oninput = function(){}

var inp = document.querySelector('input')

inp.oninput =function(){console.log('文本框内容改变时触发')}

上述代码表示当文本框内容发生改变时触发事件,将字符串 '文本框内容改变时触发' 打印到控制台