关于DOM事件的一个例子
2016-07-09 11:17
369 查看
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>event</title> <style> .target { float: left; width: 100px; height: 100px; background: #359; } .outer-div { display: none; float: left; width: 150px; height: 80px; border: 1px solid #888; } .inner-div { float: left; width: 80px; height: 50px; background: #194; } </style> </head> <body> <!-- single --> <div class="target"></div> <div class="outer-div"> <div class="inner-div"></div> </div> <!-- // mutil --> <ul> <li> <div class="target"></div> </li> </ul> <script type="text/javascript"> /** * 知识点,事件捕获、执行、冒泡 * #指定捕获过程发生 * addEventListener(event, func, useCapture) * useCapture:是否在捕获阶段触发?默认false * #阻止继续捕获 * (w3c) * window.captureEvents(Event.eventType) * window.releaseEvents(Event.eventType) * (IE) * object.setCapture() * object.releaseCapture() * #阻止继续冒泡 * event.stopPropagation()、 * (IE)event.cancelBubble = true; * #不能冒泡的事件 * mouseenter、mouseleave、focus、blur */ var timer = null; var target = document.querySelector('.target'); var outer = document.querySelector('.outer-div'); var inner = document.querySelector('.inner-div'); inner.addEventListener('click', function(event) { console.log('click inner')}, false); target.addEventListener('mouseenter', function(event) { openOuter(); }); target.addEventListener('mouseleave', closeOuter); outer.addEventListener('mouseenter', function(event) { console.log('enter outer'); openOuter(); }); outer.addEventListener('mouseleave', function(event) { console.log('leave outer'); closeOuter(); }); inner.addEventListener('mouseenter', function(event) { console.log('enter inner'); }); inner.addEventListener('mouseleave', function(event) { console.log('leave inner'); }); function openOuter() { clearTimeout(timer); outer.style.display = 'block'; } function closeOuter() { timer = setTimeout(function() { outer.style.display = 'none'; }, 200); } </script> </body> </html>
<!-- single --> <div class="target"></div> <div class="outer-div"> <div class="inner-div"></div> </div>
相关文章推荐
- Could not find Developer Disk Image
- Python的"数组"储存
- PHP通过kindeditor上传文件失败的扩展思考。
- Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)
- 工程管理器makefile的解释及简单模型
- SwipeBackActivity滑动时黑底不透明问题
- Maven程序打包成单个Jar Part 1 -- Maven assembly plugin
- 周考 信息采集 使用PDO添加入库 展示 及分页效果
- 简单排序之冒泡排序
- php xmlrpc实例及jsonrpc、soap区别
- cookie 和session 的区别详解
- 向量的运算
- 操作数据表中的记录(增删改查)
- NOIP2010提高组 关押罪犯
- 容器适配器、STL算法简介
- android开发之R文件报错
- PCIe之DMA (二)
- fatal: Not a git repository (or any of the parent&n
- 决战Myeclipse+tomcat+jdk
- vs2010+opencv2.4.9配置笔记