JavaScript进阶 - 第6章 事件响应,让网页交互

6-1什么是事件

JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。

比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。

主要事件表:

6-2鼠标单击事件( onclick )

onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行,通常与按钮一起使用。

比如,我们单击按钮时,触发 onclick 事件,并调用两个数和的函数add2()。代码如下:

<html>

<head>

<script type="text/javascript">

function add2(){

var numa,numb,sum;

numa=6;

numb=8;

sum=numa+numb;

document.write("两数和为:"+sum);  }

</script>

</head>

<body>

<form>

<input name="button" type="button" value="点击提交" onclick="add2()" />

</form>

</body>

</html>

注意: 在网页中,如使用事件,就在该元素中设置事件属性。

任务

补充右边编辑器第12行,当鼠标点击"确定"按钮后,调用openwin()函数。

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4 <title>单击事件 </title>
 5 <script type="text/javascript">
 6   function openwin(){
 7      window.open(‘http://www.imooc.com‘,‘_blank‘,‘height=600,width=400,top=100,toolbar=no,left=0,menubar=no,scrollbars=no,status=no‘);}
 8 </script>
 9 </head>
10 <body>
11   <form>
12     <input name="点击我" type="button" value="点击我"/>
13   </form>
14 </body>
15 </html>

单击事件

6-3鼠标经过事件(onmouseover)

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发onmouseover事件,并执行onmouseover事件调用的程序。

现实鼠标经过"确定"按钮时,触发onmouseover事件,调用函数info(),弹出消息框,代码如下:

运行结果:

任务

补充右边编辑器第13行,当鼠标经过"确定"按钮后,调用message()函数,弹出消息对话框。

使用onmouseover事件,为input标签添加属性 onmouseover="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4 <title> 鼠标经过事件 </title>
 5 <script type="text/javascript">
 6     function message(){
 7       confirm("请输入密码后,再单击确定!"); }
 8 </script>
 9 </head>
10 <body>
11 <form>
12 密码:<input name="password" type="password" >
13 <input name="确定" type="button" value="确定" onmouseover="message()" />
14 </form>
15 </body>
16 </html>

鼠标经过事件

6-4鼠标移开事件(onmouseout)

鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。

当把鼠标移动到"登录"按钮上,然后再移开时,触发onmouseout事件,调用函数message(),代码如下:

运行结果:

任务

补充右边编辑器第12行,当鼠标移开"点击我"的按钮时,调用message()函数,弹出消息对话框。

?不会了怎么办

使用onmouseout事件,为a标签添加属性onmouseout="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4 <title>鼠标移开事件 </title>
 5 <script type="text/javascript">
 6   function message(){
 7     alert("不要移开,点击后进行慕课网!"); }
 8 </script>
 9 </head>
10 <body>
11 <form>
12   <a href="http://www.imooc.com" onmouseout="message()">点击我</a>
13 </form>
14 </body>
15 </html>

鼠标移开事件

6-5光标聚焦事件(onfocus)

当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行。

如下代码, 当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,并调用函数message()。

运行结果:

任务

补充右边编辑器第14行,当下拉列表得到焦点时,调用message()函数,就弹出对话框“"请选择,您现在的职业!”。

?不会了怎么办

1. 添加聚焦事件

2. onfocus ="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4 <title> 光标聚焦事件 </title>
 5   <script type="text/javascript">
 6     function message(){
 7       alert("请选择,您现在的职业!");
 8     }
 9   </script>
10 </head>
11 <body>
12 请选择您的职业:<br>
13   <form>
14     <select name="career" onfocus="message()">
15       <option>学生</option>
16       <option>教师</option>
17       <option>工程师</option>
18       <option>演员</option>
19       <option>会计</option>
20     </select>
21   </form>
22 </body>
23 </html>

光标聚焦事件

6-6失焦事件(onblur)

onblur事件与onfocus是相对事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序。

如下代码, 网页中有用户和密码两个文本框。当前光标在用户文本框内时(即焦点在文本框),在光标离开该文本框后(即失焦时),触发onblur事件,并调用函数message()。

运行结果:

任务

补充右边编辑器第13行,当光标从密码文本框离开时,触发onblur 事件,调用message()函数。

?不会了怎么办

1. 使使用onblur事件

2. onblur="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 4 <title> 失焦事件 </title>
 5 <script type="text/javascript">
 6   function message(){
 7     alert("请确定已输入密码后,在移开!"); }
 8 </script>
 9 </head>
10 <body>
11   <form>
12    用户:<input name="username" type="text" value="请输入用户名!" >
13    密码:<input name="password" type="text" value="请输入密码!"  onblur="message()" >
14   </form>
15 </body>
16 </html>

失焦事件

6-7内容选中事件(onselect)

选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。

如下代码,当选中用户文本框内的文字时,触发onselect 事件,并调用函数message()。

运行结果:

任务

补充右边编辑器第13行,当选中个人简介文本框中文字时,触发onselect事件,并弹出对话框。

?不会了怎么办

1. 使用onselect事件

2. onselect="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 4 <title> 内容选中事件 </title>
 5 <script type="text/javascript">
 6   function message(){
 7     alert("您触发了选中事件!"); }
 8 </script>
 9 </head>
10 <body>
11   <form>
12   个人简介:<br>
13    <textarea name="summary" cols="60" rows="5" onselect="message()">请写入个人简介,不少于200字!</textarea>
14   </form>
15 </body>
16 </html>

内容选中事件

6-8文本框内容改变事件(onchange)

通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

如下代码,当用户将文本框内的文字改变后,弹出对话框“您改变了文本内容!”。

运行结果:

任务

补充右边编辑器第13行,实现改变文本框内容时,调用message()函数,弹出对话框“您改变了文本内容!”。

1. 使用onchange事件

2.  onchange="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 4 <title> 文本框内容改变事件 </title>
 5 <script type="text/javascript">
 6   function message(){
 7     alert("您改变了文本内容!"); }
 8 </script>
 9 </head>
10 <body>
11   <form>
12   个人简介:<br>
13    <textarea name="summary" cols="60" rows="5" onchange="message()">请写入个人简介,不少于200字!</textarea>
14   </form>
15 </body>
16 </html>

文本框内容改变事件

6-9加载事件(onload)

事件会在页面加载完成后立即发生,同时执行被调用的程序。
注意:1. 加载页面时,触发onload事件,事件写在<body>标签内。

2. 此节的加载页面,可理解为打开一个新页面时。
如下代码,当加载一个新页面时,弹出对话框“加载中,请稍等…”。

运行结果:

任务

补充右边编辑器第10行,实现加载页面时,弹出对话框“加载中,请稍等…”。

?不会了怎么办

1. 使用 onload事件

2. onLoad ="message()"

代码:

 1 <!DOCTYPE HTML>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 4 <title> 加载事件 </title>
 5 <script type="text/javascript">
 6   function message(){
 7     alert("加载中,请稍等…"); }
 8 </script>
 9 </head>
10 <body onload ="message()">
11   欢迎学习JavaScript。
12 </body>
13 </html>

加载事件

6-10卸载事件(onunload)

当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件,同时执行被调用的程序。

注意:不同浏览器对onunload事件支持不同。

如下代码,当退出页面时,弹出对话框“您确定离开该网页吗?”。

运行结果:(IE浏览器)

任务

由于浏览器不同及演示局限性,此节没有任务,大家可以拷贝代码,在本机上演示。

6-11编程练习

使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。

提示:获取元素的值设置和获取方法为:例:赋值:document.getElementById(“id”).value = 1; 取值:var 啊= document.getElementById(“id”).value;

任务

第一步: 创建构建运算函数count()。

第二步: 获取两个输入框中的值和获取选择框的值。

提示:document.getElementById( id名 ).value 获取或设置 id名的值。

第三步: 获取通过下拉框来选择的值来改变加减乘除的运算法则。

提示:使用switch判断运算法则。

第四步:  通过 = 按钮来调用创建的函数,得到结果。

注意: 使用parseInt()函数可解析一个字符串,并返回一个整数。

代码:

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>6-11 编程练习</title>
 6 <script type="text/javascript">
 7   function count(){
 8       t1=document.getElementById("txt1").value;
 9       t2=document.getElementById("txt2").value;
10       s1=document.getElementById("select").value;
11       var t3="";
12       switch(s1){
13           case "+":
14           t3=parseInt(t1)+parseInt(t2);
15           break;
16           case "-":
17           t3=parseInt(t1)-parseInt(t2);
18           break;
19           case "*":
20           t3=parseInt(t1)*parseInt(t2);
21           break;
22           case "/":
23           t3=parseInt(t1)/parseInt(t2);
24           break;
25           }
26       document.getElementById("fruit").value=t3;
27       }
28 </script>
29 </head>
30
31 <body>
32 <input type="text" id="txt1">
33 <select id="select">
34   <option value="+">+</option>
35   <option value="-">-</option>
36   <option value="*">*</option>
37   <option value="/">/</option>
38 </select>
39 <input type="text" id="txt2">
40 <input type="button" value=‘=‘ onClick="count()">
41 <input type="text" id="fruit">
42 </body>
43 </html>

6-11 编程练习

时间: 2024-10-05 04:45:27

JavaScript进阶 - 第6章 事件响应,让网页交互的相关文章

JavaScript高级用法一之事件响应与网页交互

综述 本篇的主要内容来自慕课网,事件响应与网页交互,主要内容如下 1 什么是事件 2 鼠标单击事件( onclick ) 3 鼠标经过事件(onmouseover) 4 鼠标移开事件(onmouseout) 5 光标聚焦事件(onfocus) 6 失焦事件(onblur) 7 内容选中事件(onselect) 8 文本框内容改变事件(onchange) 9 加载事件(onload) 10 卸载事件(onunload) 什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScri

JavaScript进阶系列07,鼠标事件

鼠标事件有Keydown, Keyup, Keypress,但Keypress与Keydown和Keyup不同,如果按ctrl, shift, caps lock......等修饰键,不会触发Keypress事件,而会触发Keydown和Keyup事件,这就是Keypress事件与Keydown.Keyup事件的不同之处.另外,通常使用Keypress事件来获取用户输入信息. 继续使用"JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件

JS事件-让网页交互

什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果. 主要事件表: 鼠标单击事件( onclick ) onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件.同时onclick事件调用的程序块就会被执行,通常与按钮一起使用. 比如,

慕课网javascript 进阶篇 第九章 编程练习

把平常撸的码来博客上再撸一遍既可以加深理解,又可以理清思维.还是很纯很纯的小白,各位看官老爷们,不要嫌弃.最近都是晚睡,昨晚也不例外,两点多睡的.故,八点起来的人不是很舒服,脑袋有点晕呼呼,鉴于昨晚看到了这章的编程练习,想着自己DOM编程艺术也差不多看完了,高级3也看了点,所打算开始多敲代码了. 谁知,看着编辑器一脸懵逼,不知道如何啃下这块骨头,米思绪,写着也没什么感觉,索性就不写了,这不下午才来撸它. 要求如下: <!DOCTYPE html> <html> <head&g

JavaScript进阶 - 第8章 浏览器对象

第8章 浏览器对象 8-1 window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 注意:在JavaScript基础篇中,已讲解了部分属性,window对象重点讲解计时器. 任务 在右边编辑器script标签内补充代码,弹出对话框"欢迎来到慕课网". 定义一个函数,实现打开一个网页,宽为600,高为400. 当点击"点击我,打开新窗口"按钮时,在打开网页. 如果忘记了,可以查看JavaScript基础篇. 代码

JavaScript进阶 - 第5章 小程序,大作用(函数)

5-1什么是函数 函数的作用,可以写一次代码,然后反复地重用这个代码. 如:我们要完成多组数和的功能. var sum;   sum = 3+2; alert(sum);   sum=7+8 ; alert(sum);   ....  //不停重复两行代码 如果要实现8组数的和,就需要16行代码,实现的越多,代码行也就越多.所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码的麻烦. 使用函数完成: function add2(a,b){ sum = a +

JavaScript进阶 - 第7章 JavaScript内置对象

第7章 JavaScript内置对象 7-1 什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法:能够在对象上执行的动作.例如,表单的“提交”(Submit),时间的“获取”(getYear)等: JavaScript 提供多个内建对象,比如 String.Date.Array 等等,使用对象前先定义,如下使用数组对象:   var objectNa

JavaScript中的常用的事件响应

1.鼠标单击事件(onclick) (1)语法:onclick="message()"; (2)作用:鼠标点击网页中的按钮,就会调用相应的程序块,通常与按钮(button)一起使用 (3)例子: <html> <head> <script type="text/javascript"> function add2(){ var numa,numb,sum; numa=6; numb=8; sum=numa+numb; docume

JavaScript进阶 - 第4章 跟着我的节奏走(流程控制语句)

第4章 跟着我的节奏走(流程控制语句) 4-1 做判断(if语句) if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位,如果你会HTML技术,你面试成功,欢迎加入公司.代码表示如下: <script type="text/javascript">   var mycarrer = "HTML";   if (mycarrer ==