事件流,事件对象和jQuery
事件流
多个彼此嵌套元素,他们拥有相同的事件,最内部元素事件被触发后,外边多个元素的同类型事件也会被触发,多个元素他们同类型事件同时执行的效果称为“事件流”
例子:
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的更多相关文章
- JavaScript 进阶教程一 JavaScript 中的事件流 - 事件冒泡和事件捕获
先看下面的示例代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Jav ...
- js事件流 事件捕获 及时间冒泡详解
Javascript与HTML之间的交互是通过事件实现. 一.事件流 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间.事件流,描述的是页面中接受事件的顺序.IE9,chrome,Firefox,O ...
- JavaScript 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw
参考资料: 慕课网 DOM事件探秘 js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个时间,该时间会驱动某些函数 ...
- JavaScript Event 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw
参考资料: 慕课网 DOM事件探秘 js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个事件,该事件会驱动某些函数 ...
- js的事件流事件机制
(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div ...
- JS事件(一)事件流&事件处理程序
1.事件流描述的是从页面接收事件的顺序 IE和Netscape提出了几乎完全相反的事件流概念 IE:事件冒泡(由内而外) Netscape:事件捕获(由外向内) DOM2级事件规定事件流包括三个阶段: ...
- JavaScript事件流--事件冒泡、目标与事件捕获
1.事件冒泡 微软提出了名为事件冒泡的事件流.事件冒泡可以形象地比喻为把一颗石头投入水中,泡泡会一直从水底冒出水面.也就是说,事件会从最内层的元素开始发生,一直向上传播,直到document对象. 因 ...
- python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))
一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...
- jQuery基础(4)- 位置信息、事件流、事件对象、事件代理、jquery事件
一.jQuery的位置信息 jQuery的位置信是JS的client系列.offset系列.scroll系列封装好的一些简便api. 1.宽度和高度 a.获取宽度和高度,例如: .width() // ...
- jQuery系列(九):JS的事件流的概念
1.事件概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件.想要知道这些事件是在 ...
随机推荐
- 41.QT-多线程与界面之间交互总结
1. 线程与界面组件需要注意的地方 在QThread线程中不能直接创建QWidget之类的界面组件. 因为在QT中,所有界面组件相关的操作都必须在主线程中(也就是GUI thread) 所以, QTh ...
- GPT分区
GUID分区表(简称GPT.使用GUID分区表的磁盘称为GPT磁盘).它具有如下优点: 1.支持2TB以上的硬盘. 2.分区个数没有限制.但是Windows系统最多支持128个分区. 3. ...
- Restful 2 --DRF解析器,序列化组件使用(GET/POST接口设计)
一.DRF - 解析器 1.解析器的引出 我们知道,浏览器可以向django服务器发送json格式的数据,此时,django不会帮我们进行解析,只是将发送的原数据保存在request.body中,只有 ...
- JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳
一.前言 有些东西很好用,但是你未必知道:有些东西你可能用过,但是你未必知道原理.实现一个目的有多种途径,俗话说,条条大路通罗马.发散一下大家的思维以及拓展一下知识面. 二.实现一个简短的sleep函 ...
- 为什么有人会觉得IT门槛低,工资高?
今天在高铁上,翻着逼乎,被一个话题勾住了,"为什么很多人会觉得IT门槛低?" 我一惊,还真是,身边朋友都觉得"IT赚的多","程序员工资高" ...
- spring MVC之注解开发控制器(二)
开发表单控制器 在传统的Spring MVC开发方法中,是通过扩展SimpleFormController类来创建简单的表单控制器.这样就定义了基本的表单处理流程,并允许通过覆盖几个生命周期方法来定制 ...
- quartz任务调度初次使用记录
近期公司开发的数据交换系统嵌入了quartz任务调度功能,大概了解了任务调度的整个流程,项目中需要用到它来进行定时任务操作,对数据定时检查以及及时交换. Quartz是OpenSymphony开源组织 ...
- SpringMVC配置文件 中 mvcview-controller 标签的使用
一.<mvc:view-controller path=""/>标签的作用 工程WEB-INF目录下面的JSP页面,我们知道是不能直接使用URL访问到.需要通过控制器转 ...
- a标签常用跳转
1.a标签跳转qq <a href="http://wpa.qq.com/msgrd?v=3&uin=123456789&site=qq&menu=yes&qu ...
- css3动画-加载中...
写几个简单的加载中动画吧. 像前面三种都是相当于几个不同的点轮流来播放同一动画:变大变小.css3里面有一个用于尺度变换的方法:scale(x,y):定义 2D 缩放转换,改变元素的宽度和高度. 第四 ...