预习

3. 事件行为
     1. onload事件
          常用于为body绑定load事件,表示等待body内容加载完毕再
          执行事件函数
          et :
                 <body onload = "fun();"></body>
                 //JS动态绑定
                 window.onload = function () {
                     //等待文档加载完毕之后再执行
                 };
     2. onsubmit事件
             只有在表单提交时才触发
                 注意 :该事件需要一个Boolean返回值来通知表单是否
                             要提交,返回true表示表单可以提交,
                             返回false表示阻止表单提交
             常用于验证表单是否可以提交
4. 事件对象
     1. 事件对象 event
             伴随事件触发产生,包含了当前事件所有的信息
     2. 获取事件对象
             由于事件对象伴随事件触发自动产生,浏览器会
             自动将其作为参数传递给事件处理函数,所以我们
             需要在事件处理函数出接收参数,就可以获取事件对象
             et:
                     function sum (a,b){
                         return a + b;
                     }
                     sum(10,20);

                    div.onclick = function (evt) {
                             console.log(evt);
                     };
     3. 事件对象的常用操作
             不同的事件对应不同的事件对象,其所包含的信息也不同
             1. 获取事件源
                     触发事件的节点对象
                     evt.target;
             2. 鼠标事件对象包含的属性
                     1. offsetX,offsetY
                             获取鼠标在元素上的坐标点(以元素左上角为原点)
                     2. clientX,clientY
                             获取鼠标在网页中的坐标点
                     3. screenX,screenY
                             获取鼠标在屏幕中的坐标点
             3. 键盘事件对象包含的信息
                     键盘事件 :onkeypress onkeydown onkeyup
                     1. keypress 事件
                             只有在输入字符(键盘输入)时才触发
                             事件对象的属性 :
                             1. which 属性
                                     获取当前按下字符的ASC码
                             2. key
                                     获取当前键位表示的字符
                     2. keydown
                             1. which
                                     获取当前键位的键码
                                     值区分按键,不区分大小写
                     注意 :键盘事件的监听顺序 keydown keypress keyup
                    

事件
      事件绑定方式
         1. 内联 <button onclick="">
         2. div.onclick = function (){};
      事件处理函数
         鼠标事件
         键盘事件
         表单处理
                 form  onsubmit
                 input(text passwprd) onfocus onblur onchange oninput
         load事件 onload
      事件对象
         如何获取
             以参数形式在事件处理函数中接收即可
         事件对象属性
             evt.target

-----------------------------------
一 事件传递机制
     1. 事件传递 :
             当页面一个元素触发事件时,其他相关的元素都会接收这个
             事件,都可以选择对事件作出响应
     2. 事件传递机制 :
             事件传递机制描述的是页面中元素处理事件的顺序,有两种
             机制 :冒泡 和 捕获
             1. 冒泡传递 :
                     从里向外逐个触发(默认传递方式)
             2. 捕获传递 :
                     从外向里逐个触发 (IE不支持)
             阻止事件传递 :
                 该事件只在当前元素中执行,不向上传递
                 evt.stopPropagation(); (默认冒泡情况下)

    二 jQuery
         1. 介绍
                 jQuery是一个JavaScript的库,通过封装
                 原生的JavaScript,得到一整套定义好的方法,
                 简化JS操作
                 Write Less ,Do More
                 jQuery版本 :
                      jQuery 1.xx.x 版本,兼容IE 6,7,8
                      jQuery 2.xx.x 版本,不再兼容IE 6,7,8
         2. jQuery的功能和优势
                 1. 简化DOM操作,像操作CSS一样去操作DOM
                 2. 直接通过选择器设置元素样式
                 3. 简化JS的代码操作 (链式调用)
                 4. 事件的处理更加容易
                 -------------------------
                 5. 各种动画效果使用更加方便
                 6. 让Ajax技术更完美
                 7. 基于jQuery有大量方便的插件
                 8. 自行扩展功能插件
         3. jQuery使用
             1. 引入jQuery文件
                     1. 本地文件引入
                         <script src=""></script>
                     2. 网络文件引入
                         <script src="url"></script>
                     注意 :如果想使用jQuery语法操作JS,必须将jQuery
                     引入放在JS代码之前
             2. jQuery 使用
                     1. jQuery 对象 - jQuery/$
                             jQuery对象是对DOM对象封装之后产生的对象
                             jQuery对象只能操作jQuery提供的方法,DOM对象也
                             只能操作原生JS提供的方法,不能混用
                     2. 工厂函数 - $()
                             如果想要获取元素对象,必须通过工厂函数
                             函数中可以传递参数 :选择器/DOM对象
                     3. jQuery对象与DOM对象互相转换
                             1. DOM 转换为 jQuery 对象
                                 var h1 = document.getElementsByTagName('h1')[0];
                                 var $h1 = $(h1);
                             2. jQuery 转换为 DOM
                                 var h1 = $h1[0];
                                 var h1 = $h1.get(0);
jQuery选择器
     1. 作用
         根据选择器获取页面中的元素,返回值都是
         由jQuery对象组成的数组
     2. 语法 :
         $('选择器')
     3. 常用选择器
         1. 基础选择器
                 1. ID选择器
                         $('#id');
                         返回id属性值为指定id的元素对象
                 2. 类选择器
                         $(".className");
                         返回指定类名对象的元素
                 3. 标签选择器
                         $('element');
                         返回指定标签名对应的元素
                 4. 群组选择器
                         $('selector1,selector2,...');
         2. 层级选择器
                 1. 后代选择器
                         $('selector1 selector2')
                 2. 子代选择器
                         $('selector1>selector2')
                 3. 相邻兄弟选择器
                         $('selector1+selector2')
                         匹配紧跟在selector1后满足selector2的元素
                         h1+p
                 4. 通用兄弟选择器
                         $('selector1~selector2')
                         匹配selector1后所有满足selector2的元素
         3. 基本过滤选择器
                 过滤选择器需要结合其他选择器一起使用
                 1. :first
                         只匹配一组元素中的第一个元素
                         $('p:first')
                 2. :last
                         匹配一组元素中的最后一个元素
                         $('p:last')
                 3. :not
                         否定筛选,将满足selector选择器的元素都排除在外
                         匹配剩余元素
                         $(':not(p,h1)')
                 4. :odd
                         匹配偶数行对应的元素 (奇数下标)
                 5. :even
                         匹配奇数行对应的元素
                 6. :eq(index)
                         匹配下标等于index的元素
                 7. :gt(index)
                         匹配下标大于index的元素
                 8. :lt(index)
                         匹配下标小于index的元素
         4. 属性选择器 []
                 根据标签属性匹配元素
                 1. [attribute]
                         匹配包含指定属性的元素
                 2. [attribute=value]
                         匹配属性attribute=value的元素
                 3. [attribute!=value]
                         匹配attribute属性值不等于value的元素
                 4. [attribute^=value]
                         匹配属性值以value字符开头的元素
                 5. [attribute$=value]
                         匹配属性值以value字符结尾的元素
                 6. [attribute*=value]
                         匹配属性值中包含value字符的元素
         5. 子元素过滤选择器
                 1. :first-child
                         匹配属于其父元素中的首个子元素
                 2. :last-child
                         匹配属于其父元素中的最后一个子元素
                 3. :nth-child(n)
                         匹配属于其父元素中的第n个子元素
                 注意 :
                     将要匹配的子元素与筛选选择器相结合使用

jQuery操作DOM
     1. 基本操作
         1. html()
                 获取或者设置jQuery对象中的html内容
                 类似于DOM innerHTML,可识别标签
         2. text()
                 获取或者设置jQuery对象中的text内容
                 类似于innerText
         3. val()
                 获取或者设置jQuery对象value值(常见表单控件)
                 练习 :
                     1. 创建文本框,定义id
                     2. 创建按钮,内容为“显示”
                     3. 创建 div,当按钮被点击时,将文本框中的内容
                     以一级标题的形式显示在div中
                     4. 使用jQuery实现
         4. 属性操作
                 1. attr()
                         读取或设置jQuery对象属性值
                         参数为字符串形式的属性名
                         et :
                             console.log($('div').attr('id'));
                             $('div').attr('class','d1');
                 2. removeAttr()
                         移除指定的属性,参数为属性名
                         et :
                             $('div').removeAttr('id');

    2. 样式操作
             1. attr();
                     添加id或class属性,对应选择器,为元素添加样式
             2. addClass('className')
                     将className作为值添加到元素的class属性上
                   是可以连缀调用的
                     $('h1').addClass('c1').addClass('c2')...
             3. removeClass('className');
                     移除className
                     参数可以省略,表示清空类选择器
             4. toggleClass('className')
                     切换样式 :
                         元素如果具备className对应的样式,则删除
                         如果没有,就添加

posted on 2018-10-22 21:19  破天荒的谎言、谈敷衍  阅读(145)  评论(0编辑  收藏  举报

导航