JS基础语法之DOM02(事件)

1.常用事件

  1.onclick   单击  应用场景:为按钮绑定

  2.ondbclick  双击

  3.onfocus    获得焦点

  4.onblur    失去焦点  应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.

  5.onchange   域的内容被改变  应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动)

  6.onkeydown   某个键盘按键被按下。    应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.

2.绑定事件的方式:

  1.在标签里直接写属性( onclick=showTime() )

  2.通过JS给标签绑定事件

3.this:代表当前的是触发事件的当前标签

2.案例:让文本框中动态显示时间

  思路:要在input框里显示当前时间,1.获取当前时间;2.把时间字符串填到input框里

   //1.获取当前时间
    var now = new Date();
    var nowStr = now.toLocaleString();
    //2.把时间填写到字符串input框里
    var txt1 = document.getElementById("txt1");
    txt1.value = nowStr;

  为了页面动态显示时间,使用定时器,但是定时器要传入函数,所以将上述四行代码放入函数中。

  function showTime() {
        //1.获取当前时间
        var now = new Date();
        var nowStr = now.toLocaleDateString();
        //2.把时间填写到字符串input框里
        var txt1 = document.getElementById("txt1");
        txt1.value = nowStr;
    }

  实现点击开始按钮动态显示时间,这里用到了setInterval()函数

  //点击开始按钮,时间动态显示
    var start = document.getElementById("start");
    start.onclick = function () {
        //每个一秒执行一次
        var t = setInterval(showTime,1000);
    }

  上述代码出现的问题是,由于先暂停1秒,导致第一次显示时间需要两秒钟,第二次开始才开始1s显示一次,解决办法点击的时候先调用以下showTime()

  实现点击暂停按钮暂停时间,这里用到了clearInterval()函数。

   var start = document.getElementById("start");
    start.onclick = function () {
        showTime()
        //每个一秒执行一次
        var t = setInterval(showTime,1000);
    }

    var end = document.getElementById("end");
    end.onclick = function () {
        clearInterval(t)
    }

  出现的问题,点击暂停按钮无法实现暂停,因为t不是全局变量,所以在end中无法获取,解决办法将t定义在函数外面,这样就可以实现暂停啦!

  本例子中最优价值的地方来了啊,在开始暂停都实现之后,连续点击两次开始以上,再点击暂停又无法实现暂停功能了。。。

  原因在于,每点击一次开始按钮,定时器都会把ID赋值给全局变量,t永远保持最新的定时器,页面上出现了多个定时器,清除的时候只清除最后一个。

  解决办法:判断t是否有定时器的ID,如果定时器非undefined,则说明有定时器,跳过setInterval这个步骤。

  这里还有一个问题,clearInterval(t);清除的是t对应的定时器,t的值还是在的,造成了暂停之后再点击开始,时间不动了。

  解决办法:就是让t再次进入if中,可以在clearInterval之后,设置t为undefined。 

   var start = document.getElementById("start");
    start.onclick = function () {
        showTime()
        //每个一秒执行一次
        if(t === undefined){
            t = setInterval(showTime,1000);
        }
    }

    var end = document.getElementById("end");
    end.onclick = function () {
        clearInterval(t); //clearInterval(t) 清除的是t对应的定时器,t的值还是在的,造成了暂停之后再点击开始,时间不动了。
        t = undefined;  //就是让t再次进入if中,可以在clearInterval之后,设置t为undefined
    }

完整的代码:

<input type="text" id="txt1">
<input type="button" value="开始" id="start">
<input type="button" value="暂停" id="end">
<script>
    function showTime() {
        //1.获取当前时间
        var now = new Date();
        var nowStr = now.toLocaleString();
        //2.把时间填写到字符串input框里
        var txt1 = document.getElementById("txt1");
        txt1.value = nowStr;
    }
    var t = undefined;
    //点击开始按钮,时间动态显示
    var start = document.getElementById("start");
    start.onclick = function () {
        showTime()
        //每个一秒执行一次
        if(t === undefined){
            t = setInterval(showTime,1000);
        }

    }

    var end = document.getElementById("end");
    end.onclick = function () {
        clearInterval(t);
        t = undefined;
    }
</script>

    补充: setTimeout("JS语句",时间毫秒)clearTimeout()  setInterval()  clearInterval()

       setInterval(),每个多少毫秒执行一次函数,循环执行;  clearInterval(),结束循环

          

原文地址:https://www.cnblogs.com/cwj2019/p/11736111.html

时间: 2024-10-13 04:05:24

JS基础语法之DOM02(事件)的相关文章

JS基础语法

JS基础语法第二天 1.If语法if的语法:If(判断条件){ 一般是一个boolean类型的值或是关系表达式或是逻辑表达式要执行的代码;} If(判断条件){ 一般是boolean类型的值或是关系表达式或是逻辑表达式要执行的代码;}else {要执行的代码;} If(判断条件){ 一般是boolean类型的值或是关系表达式或是逻辑表达式要执行的代码;}else if(判断条件) {要执行的代码;} 2.三元运算符表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;如果表达式1成立,也就

JavaScript进阶 - 第2章 你要懂的规则(JS基础语法)

第2章 你要懂的规则(JS基础语法) 2-1什么是变量 什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可以是衣服.玩具.水果...等. 2-2 给变量取个名字(变量命名) 我们为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字(也就是变量的名字). 我们赶快给变量取个好名字吧!变量名字可以任意取,只不过取名字要遵循一些规则: 1.必须以字母.下划线或美元符号开头,后面可

1.js基础语法

1.Js基础语法 1.数据类型 JavaScript不区分整数和浮点数,统一用Number表示 NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity 2.比较运算符 要特别注意相等运算符==.JavaScript在设计时,有两种比较运算符: 第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果: 第二

node.js基础语法

nodejs基础语法  Node.js的数据类型  Node.js的逻辑判断  Node.js的各种循环  Node.js中使用函数 看看和js有没有什么区别  使用 node 的 REPL 模式 REPL (Read-eval-print loop),即输入—求值—输出循环. Number (数字) Boolean (布尔) Object (对象) Array (数组) String (字符串) Undefined Null (空) Undefined类型只有一个值,即特殊的Undefined

JS 基础语法

基础语法 JS中的一切都区分大小写. 所谓标识符,是指变量.函数.属性的名字,或者函数的参数. 标识符的第一个字符不能是数字,可以是字母.下划线和美元符号:其它字符可以是数字. // 单行注释 /* *多行注释 *多行注释 */ 语句结尾的分号不是必需的,但是任何时候都要加上,能够避免错误.提高代码性能. 始终在控制语句中使用语句块——即使语句块中只有一条语句.

9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点

css3拓展: <display:none>  将某个元素隐藏       <visibility:hidden>  也是将某个元素隐藏 <display:block>  显示                     <visibility:visible>  显示 <display>与<visibility>的区别在于:<display>隐藏后不占位置   <visibility>隐藏后位置还在 当两个<

JS基础-语法+流程控制语句+函数+内置对象【数组】

JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使用方法有两种: (1)typeof 变量 (2) typeof(变量) undefined派生自null,所以undefined==null返回的结果是true 用于任何数据类型,Number()可以将非数值转化为数值,但是有一些数据是不能转化为数值的,如果这类数据通过Number()进行强制转化的

js基础语法学习(三)

js函数先定义后执行 function f1(name){ alert("hello name!") } f1(wang) f2(wang) function f2(name){ alert("hello name!") } 可见放在前面和放在后的对运行结果毫无影响 例: <body> <input type="text" name="input1" id="id1"> </b

Javascript进阶篇——(JS基础语法)笔记整理

根据慕课网学习整理到一起的笔记,把东西整理到一起看起来比较方便 什么是变量字面意思:变量是可变的量:编程角度:变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可以是衣服.玩具.水果...等. 表达出你的想法(表达式)表达式与数学中的定义相似,表达式是指具有一定的值.用操作符把常数和变量连接起来的代数式.一个表达式可以包含常数或变量. 字符串表达式:"I" + "love" + "you" + mychar