jQuery之事件冒泡&模拟操作
2015-12-09 13:32
615 查看
jQuery之事件冒泡&模拟操作
获取光标坐标 -- e.clientX/e.clientY
找到事件源 -- e.target || e.srcElement;
示例代码:/jQuery01/WebRoot/event/e3.html
//e:对底层的事件对象的一个封装
});
event.target:返回事件源(是dom对象)
event.pageX/pageY:获得光标坐标
示例代码:/jQuery01/WebRoot/event/e4.html
示例代码:/jQuery01/WebRoot/event/e5.html
示例代码:/jQuery01/WebRoot/event/e6.html
1.事件冒泡
a,什么是事件冒泡?
子节点产生的事件,会依次向上抛出给相应的父节点。b,如何取消事件冒泡?
e.cancelBubble = true;c,事件对象有何作用?
取消冒泡 -- e.cancelBubble = true;获取光标坐标 -- e.clientX/e.clientY
找到事件源 -- e.target || e.srcElement;
示例代码:/jQuery01/WebRoot/event/e3.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>事件冒泡</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css"> #d1{ width:200px; height:200px; border:1px solid red; } </style> <script type="text/javascript"> function f1(e){ alert('你点击的是一个链接'); //取消事件冒泡 e.cancelBubble = true; } function f2(e){ //alert('你点击的是一个div'); //输出鼠标的x,y坐标 alert(e.clientX+","+e.clientY); } //找到事件源 function f3(e){ //依据事件对象找到事件源 var obj = e.target || e.srcElement; alert(obj.innerHTML); } </script> </head> <body> <div id="d1" onclick="f2(event);"> <a href="javascript:;" onclick="f1(event);">Click me</a> </div> <a href="javascript:;" onclick="f3(event);">Click 1</a> <a href="javascript:;" onclick="f3(event);">Click 2</a> </body> </html>
2.jQuery实现事件冒泡
a,获取事件对象
click(function(e){//e:对底层的事件对象的一个封装
});
b,事件对象的属性
event.type:事件类型event.target:返回事件源(是dom对象)
event.pageX/pageY:获得光标坐标
示例代码:/jQuery01/WebRoot/event/e4.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>jQuery实现事件冒泡</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../js/jquery-1.11.1.js"></script> <script type="text/javascript"> $(function(){ $('a').click(function(e){ //依据事件对象获取事件源 //e是jQuery对象(封装了底层的事件对象) //target属性是jQuery的一个属性返回一个dom对象 //var obj = e.target; //alert(obj.innerHTML); //通过事件对象获得光标坐标 //alert(e.pageX+","+e.pageY); //事件类型 alert(e.type); }); }); </script> </head> <body> <a href="javascript:;">Click 1</a> <a href="javascript:;">Click 2</a> </body> </html>
c,停止冒泡
event.stopPropagation()示例代码:/jQuery01/WebRoot/event/e5.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>停止冒泡</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../js/jquery-1.11.1.js"></script> <style type="text/css"> #d1{ width:200px; height:200px; border:1px solid red; } </style> <script type="text/javascript"> $(function(){ $('a').click(function(e){ alert('你点击的是一个链接'); //停止冒泡 e.stopPropagation(); }); $('#d1').click(function(e){ alert('你点击的是一个div'); }); }); </script> </head> <body> <div id="d1"> <a href="javascript:;">Click me</a> </div> </body> </html>
d,停止默认行为
event.preventDefault()示例代码:/jQuery01/WebRoot/event/e6.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>停止默认行为</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../js/jquery-1.11.1.js"></script> <script type="text/javascript"> $(function(){ $('a').click(function(e){ var flag = confirm('确定访问百度吗'); if(!flag){ //停止默认行为 //阻止浏览器的默认行为(链接地址发请求) e.preventDefault() } }); }); </script> </head> <body> <a href="https://www.baidu.com/">Click me</a> </body> </html>
3.模拟操作
trigger('click')
示例代码:/jQuery01/WebRoot/event/e7.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>模拟操作</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../js/jquery-1.11.1.js"></script> <script type="text/javascript"> $(function(){ $('#b1').click(function(){ //模拟用户点击了username文本输入框 //即让username文本输入框产生焦点获得事件 //$('#username').trigger('focus'); //简写形式 $('#username').focus(); }); }); </script> </head> <body> username:<input id="username"/><br/> name:<input name="name"/><br/> <input id="b1" type="button" value="ClickMe"/> </body> </html>
相关文章推荐
- jQuery之事件绑定&合成事件
- JS、Jquery获取浏览器和屏幕各种高度宽度
- 利用jQuery实现鼠标滑过整行变色
- jQuery中serializeArray()与serialize()的区别实例分析
- jQuery实现form表单元素序列化为json对象的方法
- jQuery实现页面顶部显示的进度条效果完整实例
- jquery内容的展开与折叠
- 【锋利的jQuery阅读笔记】jQuery中的DOM事件
- 【锋利的jQuery阅读笔记】jQuery选择器
- jQuery EasyUI使用教程之在数据网格中添加一个分页
- 【锋利的jQuery阅读笔记】认识jQuery
- jQuery中的.height()、.innerHeight()和.outerHeight()的区别
- jquery的ajax全局事件详解
- jquery.form.js笔记
- Jquery easyui从零单排之datagrid分页
- JQuery实现页面Loading效果
- jQuery Validate
- 给jquery easy-ui 添加右键菜单
- Struts2和Jquery整合使用异步请求
- jQuery easyui treegrid无法传参到后台bugger一记