使用jQuery实现事件的绑定和解绑

就是所谓的事件操作。

1. 事件绑定(2种):
* eventName(function(){})
绑定对应事件名的监听, 例如:$('#div').click(function(){});
* on(eventName, funcion(){})
通用的绑定事件监听, 例如:$('#div').on('click', function(){})
* 优缺点:
eventName: 编码方便, 但只能加一个监听, 且有的事件监听不支持
on: 编码不方便, 可以添加多个监听, 且更通用
2. 事件解绑:
* off(eventName)
3. 事件的坐标
* event.clientX, event.clientY 相对于视口的左上角
* event.pageX, event.pageY 相对于页面的左上角
* event.offsetX, event.offsetY 相对于事件元素左上角
4. 事件相关处理
* 停止事件冒泡 : event.stopPropagation()
* 阻止事件默认行为 : event.preventDefault()

需求:
1. 给.out绑定点击监听(用两种方法绑定)
2. 给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
3. 点击btn1解除.inner上的所有事件监听
4. 点击btn2解除.inner上的mouseover事件
5. 点击btn3得到事件坐标
6. 点击.inner区域, 外部点击监听不响应
7. 点击链接, 如果当前时间是偶数不跳转

具体的脚本实现为:

<script type="text/javascript">
/*
需求:
1. 给.out绑定点击监听(用两种方法绑定)
2. 给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
3. 点击btn1解除.inner上的所有事件监听
4. 点击btn2解除.inner上的mouseover事件
5. 点击btn3得到事件坐标
6. 点击.inner区域, 外部点击监听不响应
7. 点击链接, 如果当前时间是偶数不跳转
*/
// 1. 给.out绑定点击监听(用两种方法绑定)
$(".out").on("click",function(){
alert('给.out绑定点击监听1');
})
$(".out").click(function(){
alert('给.out绑定点击监听2');
})
// 2. 给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
//第一种 $(".inner").on("mouseenter",function(){
alert("进入");
});
$(".inner").on("mouseleave",function(){
alert('离开');
}) //第二种
$(".inner").mouseenter(function(){
alert('进入2');
})
$(".inner").mouseleave(function(){
alert('离开2');
}); //第三种 $(".inner").hover(function(){
alert('进入3');
},function(){
alert('离开3');
}) // 3. 点击btn1解除.inner上的所有事件监听
$("#btn1").click(function(){
$(".inner").off();
})
// 4. 点击btn2解除.inner上的mouseover事件
$("#btn2").click(function(){
$(".inner").off("mouseover");
})
// 5. 点击btn3得到事件坐标
$("#btn3").click(function(event){
event = event || window.event;
console.log(event.clientX+","+event.clientY);
console.log(event.pageX+","+event.pageY);
console.log(event.offsetX+","+event.offsetY); })
// 6. 点击.inner区域, 外部点击监听不响应
$(".inner").click(function(event){
alert('aaaa');
event = event || window.event;
//停止事件冒泡
event.stopPropagation()
})
// 7. 点击链接, 如果当前时间是偶数不跳转
$('#test4').click(function (event) {
if(Date.now()%2===0) {
event.preventDefault()
}
})
</script>

最新文章

  1. load和initialize方法
  2. WPF - 属性系统 (1 of 4)
  3. 工作中积累整理-CSS样式表(一)
  4. javascript设计模式之单体模式
  5. java servlet+mysql全过程(原创)
  6. 组合数(Lucas定理) + 快速幂 --- HDU 5226 Tom and matrix
  7. hdu 1669(二分+多重匹配)
  8. 实战 SSH 端口转发
  9. OpenStack_Swift源代码分析——创建Ring及加入�设备源代码算法具体分析
  10. Log4Net 的简要配置
  11. CodeForces 702B Powers of Two
  12. Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico文件找不到
  13. learning ddr state diagram
  14. NOI-1.3-11-计算浮点数相除的余数
  15. snmp安装,及测试
  16. OpenGL中的原子操作需要注意的地方
  17. php检查是否是数字和字母
  18. ldap安装配置过程中遇到的错误,以及解决方法
  19. Response.cookies和Request.cookies
  20. JS知识点整理(一)

热门文章

  1. [转]超级强大的SVG SMIL animation动画详解
  2. 20155202 2016-2017-2 《Java程序设计》第9周学习总结
  3. 4827: [Hnoi2017]礼物
  4. spark-client 一直 accepted,无法提交任务,报错Failed to connect to driver at
  5. 按键精灵手机版多点找色,图片对比 by &lt;剑行洪荒&gt; 忠哥
  6. 用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具 [原创]
  7. 高可用OpenStack(Queen版)集群-2.基础服务
  8. 遇到执行SQL 的参数最大个数
  9. bc命令详解
  10. exit命令详解