事件流

  多个彼此嵌套元素,他们拥有相同的事件,最内部元素事件被触发后,外边多个元素的同类型事件也会被触发,多个元素他们同类型事件同时执行的效果称为“事件流”

例子:
html代码:

<div class="one">
<div class="two">
<div class="three"></div>
</div>
</div>

css样式代码:

.one{
width: 200px;
height: 200px;
background: red;
  }
.two{
width: 100px;
height: 100px;
background:blue;
  }
.three{
width: 50px;
height: 50px;
background:green;
  }

js代码:

//找元素
var one = document.getElementsByClassName('one')[0];
var two = document.getElementsByClassName('two')[0];
var three = document.getElementsByClassName('three')[0];
//添加事件
one.onclick = function(evt){
        console.log('one');
    }
    two.onclick = function(evt){
        console.log('two');
      
    }
    three.onclick = function(evt){
        console.log('three');
        
    }

结果就是: 当点击two或three的class的div时,也会将最底下的one层内容显示

事件对象

  事件对象,每个事件(包括鼠标、键盘事件)触发执行的过程中,都有对应的事件对象,通过事件对象可以获得鼠标相对页面的坐标信息、通过事件对象也可以感知什么键子被 触发执行、通过事件对象还可以阻止事件流产生、阻止浏览器默认动作。

例子:
html代码:

<input type="text" id="txt" >
<button onClick="denglu()">登录</button>

js代码:

var input1 = document.getElementById('txt');
    //键盘键按下去时触发事件
input1.onkeydown = function(evt){
var code = evt.keyCode;
          //键入回车键时
if(code == 13){
denglu();
}
} /*方法*/
function denglu(){
alert('登录成功');
}

阻止事件流:

evt.stopPropagation();

event.keyCode  获得键盘对应的键值码信息

 jQuery

  必须引入jQuery的js文件

页面加载完成
js

  window.onload = function(){}

jquery

//方式一
$(document).ready(function(){ })
// 方式二
$(function(){ })

    js和jquery  找元素操作元素
1.找元素

  js  document.getElementById();
document.getElementsByTagName();...
jquery
$('选择器') ;
   //例如
$("img")//提取img标签的元素
$("#aa")//提取id为aa的元素
$(".bb")//提取class为bb的元素
/*自定义*/
$(this)//提取当前html的元素
$("p:first")//选取第一个 <p> 元素
$("[href]")//选取带有 href 属性的元素

js对象 jsObj   jquery对象 jqObj

2.操作内容

  没有等号是获取,一个等号是赋值
    js

// 非表单元素  
jsObj.innerHTML jsObj.innerHTML= 123;
   // 表单元素  

  jsObj.value   = 123;

jquery

  //非表单元素 

   jqObj.html()   

    jqObj.html('123')
  // 表单元素 

   jqObj.val()   

  jqObj.val("123")

3.操作属性
    js

jsObj.getAttribute(属性名称);//提取属性值

jsObj.setAttribute(名称,值);//添加属性

jsObj.removeAttribute(属性名称);//删除属性

例如:

  jsObj.getAttribute("class");
jsObj.setAttribute("class","add")
jsObj.removeAttribute("class");

jquery

 jqObj.attr('class','add');//一个参数是获取 两个参数是设置
jqObj.attr({'class':'add','id':'id'});//同时设置多个属性用json格式数据
jqObj.removeAttr()//删除属性
jqObj.addClass('add');//添加一个classs属性,值为add

4.操作样式
    js

        jsObj.style.color = "red";

//只能操作行内样式

jquery

   jqObj.css();

例如:

$("p").css("background-color");//提取样式属性
$("p").css("background-color","yellow");//添加样式
$("p").css({"background-color":"yellow","font-size":"200%"});添加多个样式

5.操作事件
    js

     jsObj.onclick = function(){}

jquery

  jqObj.click(function(){});

添加删除元素

//添加元素   
jqObj.html('<button></button>');

show()

例子:

  基本显示隐藏

html代码:

 <div style="width: 100px;height: 100px; background: red;">123</div>

jQ代码:

 var jqdd = $('div').eq(0);//获取div并定义变量
//定时器
setTimeout(function(){
//慢慢隐藏
jqdd.hide('slow',function(){
//慢慢显示
jqdd.show('slow');
});
},1000);
 var jqdd = $('div').eq(0);
setTimeout(function(){
jqdd.hide('slow',function(){
jqdd.show('slow');
});
},1000)

事件流,事件对象和jQuery的更多相关文章

  1. JavaScript 进阶教程一 JavaScript 中的事件流 - 事件冒泡和事件捕获

    先看下面的示例代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Jav ...

  2. js事件流 事件捕获 及时间冒泡详解

    Javascript与HTML之间的交互是通过事件实现. 一.事件流 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间.事件流,描述的是页面中接受事件的顺序.IE9,chrome,Firefox,O ...

  3. JavaScript 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw

    参考资料: 慕课网 DOM事件探秘    js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个时间,该时间会驱动某些函数 ...

  4. JavaScript Event 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw

    参考资料: 慕课网 DOM事件探秘    js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个事件,该事件会驱动某些函数 ...

  5. js的事件流事件机制

    (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div ...

  6. JS事件(一)事件流&事件处理程序

    1.事件流描述的是从页面接收事件的顺序 IE和Netscape提出了几乎完全相反的事件流概念 IE:事件冒泡(由内而外) Netscape:事件捕获(由外向内) DOM2级事件规定事件流包括三个阶段: ...

  7. JavaScript事件流--事件冒泡、目标与事件捕获

    1.事件冒泡 微软提出了名为事件冒泡的事件流.事件冒泡可以形象地比喻为把一颗石头投入水中,泡泡会一直从水底冒出水面.也就是说,事件会从最内层的元素开始发生,一直向上传播,直到document对象. 因 ...

  8. python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))

    一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...

  9. jQuery基础(4)- 位置信息、事件流、事件对象、事件代理、jquery事件

    一.jQuery的位置信息 jQuery的位置信是JS的client系列.offset系列.scroll系列封装好的一些简便api. 1.宽度和高度 a.获取宽度和高度,例如: .width() // ...

  10. jQuery系列(九):JS的事件流的概念

    1.事件概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件.想要知道这些事件是在 ...

随机推荐

  1. 让你的spring-boot应用日志随心所欲--spring boot日志深入分析

    1.spring boot日志概述 spring boot使用Commons Logging作为内部的日志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配 ...

  2. thinkphp5.1跨模块调用控制器或者模型

    tp5.1 采用命名空间的方式进行调用.

  3. 由奇葩cookie导致服务器500来认识cookie

    问题:cookie中文会导致服务器报500错误. 一:cookie的特点 1.以键值对的形式出现的,比如:a=b;b=c 2.中文的值需要转义 cookie的例子 <!DOCTYPE html& ...

  4. CentOS6.5安装MySQL5.7(也适合其他版本安装)

     1.查看是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步使用yum安装时会报错: 方法一:yum list installed | grep mysql 方法二:rpm -qa | ...

  5. (转)用户管理 之 Linux 用户(user)和用户组(group)管理概述

    用户管理 之 Linux 用户(user)和用户组(group)管理概述  原文:http://www.cnblogs.com/licheng/p/6103992.html 一.理解Linux的单用户 ...

  6. Python踩坑之旅其一杀不死的Shell子进程

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...

  7. es6-异步应用

    异步编程对 JavaScript 语言太重要.Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可.本章主要介绍 Generator 函数如何完成异步操作. 传 ...

  8. C++中构造函数的写法

    class Circle { public: Circle(float r); private: float radius; }; Circle::Circle(float r) { radius = ...

  9. Google pieCharts的学习

    在公司项目开发过程中, 尤其是在网站的开发过程中,用到很多的前端的插件,在这里, 我简单介绍下近期Google pieCharts的是使用方法 https://developers.google.co ...

  10. HDU 1011 Starship Troopers星河战队(树形dp)

    题意 有n个洞穴编号为1-n,洞穴间有通道,形成了一个n-1条边的树, 洞穴的入口即根节点是1. 每个洞穴有x只bugs,并有价值y的金子,全部消灭完一个洞穴的虫子,就可以获得这个洞穴的y个金子. 现 ...