前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版

JavaScript-DOM事件

首页2016-07-27 11:40:43Front-End
JavaScript
  • DOM 事件就是指 当页面上发生某一件事的时候激发某一个函数 相当监听/触发设备

比如:

  • 元素被单击时 onclick

  • 元素失去焦点时 onblur

  • 表单被提交时,用onsubmit

  • DOM事件如何声明?

    • 直接在元素标签中声明 <input type='button' onclick="">
    • 以事件属性附上一个函数变量:例如 inputobj.onclick = 一个函数;
  • 主要的DOM事件:(可以归为3类)


  • 页面上的变化引起的 比如 失去焦点 关闭页面
  • 鼠标变化引起的 比如 鼠标单击 鼠标经过
  • 键盘事件

其中onsubmit比较特殊 :

在<form onsubmit='return 函数名'> 这样函数return false 时 才能阻拦表单的提交行为

  • 鼠标事件:

-	`onclick` 当单击时
-	`onmouseOver` 当经过时
-	`onMouseDown` 当鼠标按下时
-	`onMouserUp` 当鼠标抬起时
-	`onMouseMove` 当鼠标移动时
  • 键盘事件:

-	`onchange `当内容被改变时[重要]
-	`onSelect` 当内容被选中时
-	`onkeydown `当键盘按下时
-	`onkeyup` 当键盘抬起时
-	`onSubmit `当表单提交时[重要]
-	`onReset `当表单重置时
  • 页面事件:

-	`onblur` 当失去焦点时
-	`onfocus `当获得焦点时
-	`onload` 当页面加载时
-	`onunload` 当页面关闭时
  • onblur失去焦点
<form action="">
	<p>Email:<input type="text" name="email" value="" onblur="t1();"></p>
	<p>姓名:<input type="text" name="username" onfocus="t2();"></p>
</form>
@前端进阶之旅: 代码已经复制到剪贴板
//失去焦点
function t1(){
    var con = document.getElementsByName('email')[0].value;
    if(con == ''){
        document.getElementsByName('email')[0].value = prompt('请输入邮件地址:');
    }
}

//获得焦点
function t2(){
    var con = document.getElementsByName('username')[0];
    con.style.border = '2px solid red';
}
@前端进阶之旅: 代码已经复制到剪贴板
  • onload
<body onload="t1();" onunload="t2();"><!--  onload写在页面的开始位置 -->
	
</body>
<form action="">
	<p>Email:<input type="text" name="email" value="" ></p>
	<p>姓名:<input type="text" name="username"></p>
</form>
@前端进阶之旅: 代码已经复制到剪贴板
function t1(){
    var con = document.getElementsByName('email')[0].value='请填写您的email';

}

function t2(){
    alert("您真的要关闭吗");
}
@前端进阶之旅: 代码已经复制到剪贴板
  • onmouserover
<a href="#" onmouseover="t3();"  onmouseout="t4();">百度</a>
<p id="baidu">
    百度详细介绍
    <img src="./images/logo.png">
</p>

<p>
<select name="xueli" onchange="t5();">
    <option value="">请选择学历</option>
    <option value="大学" >大学</option>
    <option value="中学">中学</option>
    <option value="初中">初中</option>  
    <option value="小学">小学</option>  
</select></p>

<form action="" onsubmit="return t6();"> <!-- onsubmit 和return false结合才能阻止提交  地址栏没变化说明阻拦 -->
    <p>Email:<input type="text" name="email" value="" ></p>
    <p>姓名:<input type="text" name="username"></p>
    <p><input type="submit" value="提交 "></p>
</form>
@前端进阶之旅: 代码已经复制到剪贴板
<style type="text/css">
    #img{
        display: none;
    }
</style>
@前端进阶之旅: 代码已经复制到剪贴板
function t1(){
 	alert('来了');
 	
 }

 function t2(){
 	alert('走了');
 }

 function t3(){
 	var bd = document.getElementById('baidu');
 	bd.style.display = 'block';
 }
 function t4(){
 	 var bd = document.getElementById('baidu');
 	bd.style.display = 'none';
 }

 function t5(){
 	var sel = document.getElementsByTagName('select')[0];
 	// alert(sel.value);
 	if(sel.value == ''){
 		alert('至少选择一个');
 	}
 }

 function t6(){
 	 var con = document.getElementsByName('email')[0].value;
 	if(con == ''){
 			document.getElementsByName('email')[0].value = prompt('请输入邮件地址:');
 			return false;//和67行结合才能阻拦提交
 		}
 }
@前端进阶之旅: 代码已经复制到剪贴板
fe

← JavaScript之事件的中断传播与行为阻止JavaScript与Unicode编码 →