事件流,事件对象和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等等,可以向文档或者文档中的元素添加事件侦听器来预订事件.想要知道这些事件是在 ...
随机推荐
- LaTeX使用心得
LaTeX是一个功能强大的,开源的排版工具. 最近教练让我们做课件,我做数论,鉴于LaTeX的数学公式功能强大(而MS办公软件的数学公式简直就是个LJ)和我的学习精神,我决定用LaTeX写课件. 在一 ...
- 洛谷P2746 校园网Network of Schools
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校").注意即使 \(B\) 在 \(A\) 学校的分发列表中, \(A ...
- tomcat怎么优化
Tomcat有很多方面,我从内存.并发.缓存四个方面介绍优化方法. 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catal ...
- Asp.net Core 添加 EF 工具并执行初始迁移错误解决方法(Add-Migration Initial---Build failed.)
1.问题: 首次在ASP.NET Core项目中使用Code First模式的Entity Framework框架,在添加EF工具并做初始化迁移(perform initial migration), ...
- sql新增字段注意事项
新增字段的类型.长度(精度)是否合适 解决方法: 跟应用明确加字段和改字段的风险,确认新增字段类型正确.长度(精度)合适. 以及跟应用明确老数据是否要订正?如何订正?新增列是否非空?是否有默认值等等. ...
- Silverlight 登陆界面
美术水平有限,不喜勿喷. 界面代码,效果如下图 <UserControl x:Class="ElecDemoTelerikSL.Login" xmlns="http ...
- keil编译器
1 数组比指针效率高. 2 v4.73不能查看局部变量的值:可先将C/C++选项下的优化级别设置成O0,查看完之后修改回去.因默认级别是2级.
- 寻找jar包的方法
在项目开发中经常会遇到资源jar查找难的问题,一种使用maven ,另一种方法是: (1).使用下载地址:https://oss.sonatype.org/content/repositories/r ...
- swift第一课快速体验playground
最近听说苹果要大力推行swift语言,所以我必须要赶快好好学一学,今天做第一个就遇到问题. 在Xcode7.2欢迎界面,选中创建第一个,我们一般都是默认创建第二个. 创建完后,出现问题了,提示如下: ...
- springboot+Jsp部署linux
这个springboot部署到linux,我之前一直都是在linux上使用tomcat部署,但是这样部署容易出现EL表达式无法使用导致项目报错:后来发现了一种更简单的方法,就是将项目打成war包,注册 ...