js阻止冒泡
js阻止冒泡
(ev || event).cancelBubble = true;
标签切换
<script type="text/javascript">
window.onload = function () {
var oUl = document.getElementById('ul_menu');
var oLi = getByClass(oUl, 'item');
var sonUl = getByClass(oUl, 'son');
for (var i = 0; i < oLi.length; i++) {
oLi[i].index = i;
oLi[i].onclick = function (ev) {
for (var n = 0; n < oLi.length; n++) oLi[n].className = "";
this.className = "current";
for (var n = 0; n < sonUl.length; n++) sonUl[n].style.display = "none";
sonUl[this.index].style.display = "block";
(ev || event).cancelBubble = true;
}
}
document.onclick = function () {
for (var n = 0; n < oLi.length; n++) oLi[n].className = "";
for (var n = 0; n < sonUl.length; n++) sonUl[n].style.display = "none";
}
}
function getByClass(oParent, sClass) {
var aEle = oParent.getElementsByTagName('*');
var aResult = [];
var re = new RegExp('\\b' + sClass + '\\b', 'i');
var i = 0;
for (i = 0; i < aEle.length; i++) {
//if(aEle[i].className==sClass)
//if(aEle[i].className.search(sClass)!=-1)
if (re.test(aEle[i].className)) {
aResult.push(aEle[i]);
}
}
return aResult;
}
</script>
js阻止冒泡的更多相关文章
- JS点击子元素不触发父元素点击事件(js阻止冒泡)
js阻止冒泡 <html> <title></title> <head> <meta charset="utf-8"> ...
- js阻止冒泡及jquery阻止事件冒泡示例介绍
js阻止冒泡 在阻止冒泡的过程中,W3C和IE采用的不同的方法,那么我们必须做以下兼容. 复制代码 代码如下: function stopPro(evt){ var e = evt || window ...
- js阻止冒泡和默认事件(默认行为)详解- jquery DefaultPrevented 函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- js 阻止冒泡 兼容性方法
function customstopPropagation(e){ var ev = e || window.event; if (ev.stopPropagation) { ev.stopProp ...
- JS阻止冒泡方法(转)
S事件流其中一种是冒泡事件,当一个元素被触发一个事件时,该目标元素的事件会优先被执行,然后向外传播到每个祖先元素,恰如水里的一个泡泡似的,从产生就一直往上浮,到在水平面时,它才消失.在这个过程中,如果 ...
- Js阻止冒泡,Vue中如何阻止冒泡事件
js解决冒泡:event.stopPropagation() vue解决冒泡: 事件.stop,例如:@click.stop="" ,@mouseover.stop="& ...
- js阻止冒泡和默认事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js阻止冒泡事件及默认操作
1. 事件目标 现在,事件处理程序中的变量event保存着事件对象.而event.target属性保存着发生事件的目标元素.这个属性是DOM API中规定的,但是没有被所有浏览器实现 .jQuery对 ...
- js阻止冒泡事件和默认事件的方法
阻止默认事件 function stopDeFault(e){ if(e&&e.preventDefault){//非IE e.preventDefault(); }else{//IE ...
随机推荐
- java学习笔记04--数组
java学习笔记04--数组 数组复制的方法是使用System类提供的arraycopy()方法,其语法如下: System.arraycopy(Object src, int srcPos, Obj ...
- C语言数据结构----递归的应用(八皇后问题的具体流程)
本节主要讲八皇后问题的基本规则和递归回溯算法的实现以及具体的代码实现和代码分析. 转载请注明出处.http://write.blog.csdn.net/postedit/10813257 一.八皇后问 ...
- Android万能适配器base-adapter-helper的源代码分析
项目地址:https://github.com/JoanZapata/base-adapter-helper 1. 功能介绍 1.1. base-adapter-helper base-adapter ...
- Android 增量更新实例(Smart App Updates)
原地址:http://my.oschina.net/liucundong/blog/160436 官方说明 实现原理 实现 (1)生成差异包 (2)使用旧apk+差异包,在客户端合成新apk 注意事项 ...
- deque,list,queue,priority_queue
1.deque deque双端队列容器与vector一样,采用线性表顺序存储结构,但与vector唯一不同的是,deque采用分块的线性存储结构来存 储数据,每块的大小一般为512字节,称为一个deq ...
- C++&&Mysql&&codeblocks
#include <iostream> #include <stdio.h> #include <winsock2.h> #include <mysql.h& ...
- [linux]ubuntu apt-get安装软件失败
1.首先查看 dns 配置 sudo vi /etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8 2.修改 apt-get 源 ...
- win8 远程桌面 你得凭证不工作
今天在在登录azure远程桌面时,一直提示你的凭证不工作, 按照网上各种教程都不行, 后来发现在win8中用户名结构中,需要加上本机电脑名比如:“win8\administrator”.
- Oracle Client: TNS: Connect timeout ocurred.
1. 检查Oracle Server 的防火墙是否关闭. 2. Client, Server 重启.
- 搭建php环境时解决jpeg6 make: ./libtool:命令未找到
搭建php环境时解决jpeg6 make: ./libtool:命令未找到 [root@bogon jpeg-6b]# make; make install ./libtool --mode=comp ...