美文网首页
Java Script 事件&Dom对象

Java Script 事件&Dom对象

作者: Grayly吖 | 来源:发表于2019-04-23 21:01 被阅读0次

三、事件

1、事件绑定方式

(1)在标签中添加绑定事件

    <button onclick="window.clickFun()">点击1</button>

(2)获取标签节点,给标签对象设置onclick方法

    var $btn = document.querySelector('#btn');
    $btn.onclick = function() {
        console.log(this);  // button标签
        console.log('点击2');
    }

2、常用事件类型

(1)点击事件:onclick

(2)输入框事件

  • (2.1)获得焦点:onfocus
    // 获得焦点事件
    $inp.onfocus = function() {
        console.log('输入框获得了焦点');
    }
  • (2.2)失去焦点:onblur
    // 失去焦点事件
    $inp.onblur = function() {
        console.log('输入框失去了焦点');
    }
  • (2.3)输入事件:oninput
    //输入事件
    $inp.oninput = function () {`
        console.log(this.value);
    }

(3)键盘事件

  • (3.1)在用户按下按键时触发:onkeydown
   $inp2.onkeydown = function(event) {
       console.log(event);
       if (event.keyCode === 13) {
           alert('正在登录......')
       }
   }
  • (3.2)当用户释放按键时触发:onkeyup

(4)鼠标事件

  • (4.1)鼠标移入事件:onmouseover
  • (4.2)鼠标移出事件:onmouseout

3、事件对象

(1)event:是事件的对象

    // event是事件的对象
    //双击事件的对象
    $btn.ondblclick = function (event) {
        console.log(event);
    }

(2)keyCode:按键的编号(event对象的一个属性)

  • 回车keyCode为13
    $inp2.onkeyup = function (event) {
        console.log(event);
        if (event.keyCode === 13) {
            alert('正在登录......')
        }
    }

(3)event.currentTarget:表示绑定的元素

(4)event.target:表示点击的元素

    var $out = document.querySelector('#out');
    $out.onclick = function(event) {
        console.log('绑定的元素',event.currentTarget);
        console.log('点击的元素',event.target);
    }

4、addEventListener:事件监听(事件绑定)

(1)一个普通的函数,当它跟事件绑定在一起的时候,它有另外一个名字: 监听器

    /**
     * clickFun是个普通的函数
     * 当它跟事件绑定在一起的时候,它有另外一个名字: 监听器
     */ 
    function clickFun() {
        console.log('哈哈');
    }
  • 与addEventListener区别
    • clickFun函数绑定多次却只能执行一次
    • addEventListener绑定多少次就能执行多少次

(2)JS事件的三个阶段

Dom树基本结构图
  • (2.1)捕获:事件由页面元素接受,逐级向下(通过Dom树),到具体的元素
  • (2.2)目标:具体元素
  • (2.3)冒泡:与捕获相反,事件由具体元素接受,逐级向上(通过Dom树),到页面元素

(3)

  • (3.1)事件捕获:当使用事件捕获时,父元素先触发,子元素后触发
  • (3.2)事件冒泡:当使用事件冒泡时,子元素先触发,父元素后触发

(4)addEventListener的使用(绑定事件)

  • (4.1)第一个参数:事件的类型
  • (4.2)第二个参数:绑定的函数
  • (4.3)第三个参数:监听阶段
    • false:冒泡阶段(常用)
    • true:捕获阶段
    $btn.addEventListener('click',function(event) {
        alert('嘿嘿');
    },false);

(5)阻止事件冒泡:event.stopPropagation();

  • 设置后点击子元素,父元素不会再被触发
    var $gradeFather = document.querySelector('#gradeFather');
    $gradeFather.addEventListener('click',function(event) {
        alert('我是爷爷');
    },false)

    var $sun = document.querySelector('#sun');
    $sun.addEventListener('click',function(event) {
        // 阻止事件冒泡
        event.stopPropagation();
        alert('我是儿子');
    },false)

(6)阻止默认事件:event.preventDefault();

  • 例如阻止a标签跳转
    var $a = document.querySelector('a');
    $a.addEventListener('click', function() {
        // 阻止默认事件
        event.preventDefault();
        alert('哈哈哈');
    },false)

四、Bom对象和Dom对象

  • Bom对象:指浏览器对象模型,可以对浏览器窗口进行访问、操作。

  • Dom对象:指文档对象模型,可以访问HTML文档所有元素。

1、navigator.userAgent:判断用户设备(浏览器检测)

2、通过Dom对象对页面的标签进行增、删、改、查操作

(1)查(常用方法)

  • (1.1)document.querySelector(' ');
  • (1.2)document.querySelectorAll(' ');
  • (1.3)document.getElementById(' ');

(2)添加

    var num = 6;
    function addEle() {
        //1、创建节点
        var $li = document.createElement('li');
        //2、填充内容
        $li.innerText = `第${num++}个li`;
        //3、获取父元素节点
        var $list = document.querySelector('#list');
        //4、添加节点
        $list.appendChild($li);

(3)删

    document.querySelector('p').remove();  //把p标签删除
        //删除多个p
    function del() {
        var p = document.querySelectorAll('p');
        for (var i = 0; i < p.length; i++) {
            document.querySelector('p').remove();
        }
    }

(4)修改

  • (4.1)通过样式进行修改
    • var style = window.getComputedStyle($content):只能通过它来获取内部或外联样式
    • $content.style.display:只能获取内联样式
        function hid() {
            var $btn = document.querySelector('#btn'); //获取按钮节点
            var list = document.querySelector('#list');
            var style = window.getComputedStyle(list); // 获取内部或外联样式属性对象
            if (style.display == 'block') {
                list.style.display = 'none';  //通过内联样式进行修改
                $btn.innerHTML = '显示';
            } else {
                list.style.display = 'block';
                $btn.innerHTML = '隐藏';
            }
        }
  • (4.2)通过类名进行修改
    function toggle() {
        var $btn = document.querySelector('#btn');
        //1、获取节点元素
        var $content = document.querySelector('#content');
        // 2、获取content的class值
        var className = $content.className;
        console.log(className);
        //3、判断className是否为空
        if (!className) {
            $content.className = 'dsn';
        } else {
            $content.className = '';
        }
    }

相关文章

  • Java Script 事件&Dom对象

    三、事件 1、事件绑定方式 (1)在标签中添加绑定事件 (2)获取标签节点,给标签对象设置onclick方法 2、...

  • JS

    java script学习笔记 DOM对象:把body、div、p等节点树看成一个对象。 BOM对象:把浏览器的地...

  • DOM事件对象与IE事件对象

    DOM 事件处理对象 IE事件对象 注意: DOM中事件处理对象中的 event.currentTarget 与 ...

  • JavaScript事件03——事件对象

    大纲:事件对象(DOM中的事件对象,IE中的事件对象,跨浏览器) 一、事件对象 什么是事件对象? 在触发DOM上的...

  • 原生事件对象

    事件对象: 每当触发事件时,就会产生一个事件对象(不管是DOM 0 还是DOM2 都有事件对象)[ 事件对象操作的...

  • 事件对象

    什么是事件对象?在触发DOM上的事件时都会产生一个对象 事件对象event DOM中的事件对象 (1) type属...

  • DOM事件(二)

    一、 事件对象 1.1 DOM中的事件对象 在触发DOM上的某个事件时,会产生一个事件对象event: event...

  • Dom事件

    基本概念 Dom事件级别 Dom事件模型 Dom事件流 描述Dom事件捕获的具体流程 Event对象的常见应用 自...

  • java script DOM操作

  • 网易微专业-DOM编程艺术 05 事件

    1、DOM事件⑴主要内容▪事件流▪事件注册▪事件对象▪事件分类▪事件代理 ⑵什么是DOM事件▪点击一个DOM元素▪...

网友评论

      本文标题:Java Script 事件&Dom对象

      本文链接:https://www.haomeiwen.com/subject/cmpbgqtx.html