12event.md
goer ... 2022-01-05 大约 3 分钟
[toc]
# 事件
事件挺多的,而且很重要
# 1. 静态事件
// 静态事件
<img src="one.jpg" alt='' onclick="alert('gogogo')">
// 当前对象可以使用this代替
<img src='one.jpg' alt='我不是狗' onclick='alert(this.alt)'>
// 还可以之间设置其他标签属性
<p id="pp1">这是一个p标签</p>
<img src="one.jpg" alt="这是一个小狗头11" onclick="pp1.style.border='5px solid red';" />
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 2.动态绑定
触发效果再script标签内
<img src="one.jpg" alt='' id="one" onclick="a2(this)">
function a2(a){
alert(a.alt) //弹出自己的alt属性
}
//修改图片
var f5=true;
img2.onclick=function(){
//事件触发之后的效果在这里执行
//这里面的this代表当前对象img2
if(f5){
this.src='images/2.jpg';
f5=false;
}else{
this.src='images/1.jpg';
f5=true;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 3.事件
改变任何样式 ,可以修改css属性和值
# (1)点击事件
onclick
点击触发事件
// <button id='box'>
box.onclick = function(){
alert(11);
}
1
2
3
4
5
2
3
4
5
# (2) 双击事件
ondblclick
鼠标双击事件
// <button id='box'>
box.ondblclick = function(){ alert(11);}
//双击修改 class名
box.ondblclick = function(){
this.className = 'bbb' //设置style bbb样式
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# (3)鼠标移入和移出事件
onmouseover
: 移入
onmouseout
: 移出
//很多图片
var img=document.querySelectorAll('img');
for(var i=0; i<img.length; i++){
img[i].onmouseover = function(){
this.style.opacity = '0.5';
}
img[i].onmouseout = function(){
this.style.opacity = '1';
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# (4)获取焦点和失去焦点
onfocus
: 获取焦点
onblur
: 失去焦点input框 带边框线 outline:none;
// <input id="inp" type="text" style="outline:none;">
// 可以修改页面任何标签的样式
inp.onfocus=function(){
this.style.borderColor = 'blue';
img[2].style.width = '300px';
}
inp.onblur=function(){
this.style.borderWidth='4px';
img[2].style.display = none;
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# (5)内容发生改变
onchange
一般用于下拉框和上传文本框
//<input type='file' id="file">
//<div id="box"></div>
//上传文件,和下拉框就会触发事件
file.onchange = fuction(){
box.innerHTML = this.value; //文件路径
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# (6) 键盘按下和松开事件
onkeydown
按下
onkeyup
松开
//<input type='text' id="tex">
//<div id="box"></div>
tex.onkeydown = function{
box.innerHTML = this.value;
}
tex.onkeyup =function{
box.innerHTML = this.vlaue;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# (7) 表单提交事件
onsubmit
: 用于表单验证
// 单选框和多选框默认选中
var radio = document.querySelectorAll('input[name="games"]');
radio[3].checked = true;
// 表单验证
<form action="地址" method="方式" id="fff">
</form>
fff.onsubmit=function(){
//提交就
alert('提交成功')
//失败就不提交
return false;
}
// 最少选中一个
fff.onsubmit = function(){
var a = false;
for(var i=0; i<radio.length; i++){
if(radio[i].checked){
a=trun;
}
}
if(a){
//有选中就提交
}eles{
alert('最少选一个')
return false; //不能提交
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# (8)模拟事件
click()
模拟点击事件
focus()
模拟表单提交
submit()
模拟表单提交
//1.`click()` 模拟点击事件
<a id="baidu" href="www.baidu.com">
<p class="p">模拟带你就</p>
//点击p跳转到百度
p.onclick =function(){
baidu.click();
}
//2.`focus()`模拟表单提交
pp.onclick =function(){
//点击pp可以让光标在input聚焦
input.focus();
}
//3.`submit()`模拟表单提交
file.onchange = function(){
//文件上传,内容改变,直接提交表单
ff.submit()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# (9)获取到当前键盘值
document.onkeydown = keyDown; // 事件的初始化
//keyDown()函数有一个隐藏的变量--一般的,我们使用字母“e”来表示这个变量。
function keyDown(e){
console.log(e)
console.log(e.key,e.keyCode)
}