window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理

写PC下拉菜单的时候,hover样式显示下拉菜单,可能会这样写

  <li class="xb_li1" onclick="window.open('')">精英团队</li>
<li class="xb_li1" onclick="window.open('')">720°全景</li>
<li class="xb_li1" onclick="window.open('')">装修选材</li>
<li class="xb_li1" onclick="window.open('')">装修攻略</li>
<li class="xb_li1" onclick="window.open('')">关于我们
<ul>
<li onclick="window.open('')">公司简介</li>
<li onclick="window.open('')">公司荣誉</li>
<li onclick="window.open('')">公司历程</li>
<li onclick="window.open('')">发展历程</li>
<li onclick="window.open('')">联系我们</li>
</ul>
13 </li>

这样的话点击的时候会发生很尴尬的事情,谷歌点击很正常,但是火狐点击二级菜单的时会打开两个新页面,分别是当前点击的链接页面和父级的链接 ,分别打开“关于我们”和“公司简介”子元素的链接

那么如何阻止 click 事件冒泡到父元素:

这里需要做兼容处理,小编修改成了如下代码:

 <li class="xb_li1" data-url="http://www.runoob.com">装修案例
<ul>
<li data-url="https://www.cnblogs.com">中央国际</li>
<li data-url="https://www.cnblogs.com">万科云岩大都会</li>
<li data-url="https://www.cnblogs.com">观府壹号</li>
</ul>
</li>

装修案列是父级元素,中国国际属于子元素,data-url  是自定义元素,用来存放链接的,然后js获取该链接

  //xb:codeBlockDescribe:菜单点击事件
//给li添加点击事件
$(".xbm_topBox .xb_menuBox li").click(function(event){
//判断是否支持stopPropagation方式,ie不支持
if (event && event.stopPropagation) {
//W3C取消冒泡事件代码
event.stopPropagation();
} else {
//IE取消冒泡事件支持代码
window.event.cancelBubble = true;
}
//xb:codeBlockDescribe:两个自定义属性,data-url地址
//$(this).attr("data-url") 获取当前点击元素的自定义属性值得
//window.open新窗口打开页面,第一个参数为地址
window.open($(this).attr("data-url"));
})

小编亲测有效,感谢大家支持

window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理的更多相关文章

  1. js 各种事件 如:点击事件、失去焦点、键盘事件等

    事件驱动:        我们点击按钮 按钮去掉用相应的方法.                demo:             <input type="button" v ...

  2. javascript基础1 语法 点击事件 超链接带点击事件

    javascript ----------------------------------------------------------------------------------------- ...

  3. html 获取鼠标左键事件,滚轮点击事件,右键点击事件

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. 关于伪类after后续追加,实现js事件(如点击事件)

    实现情况为:点击"编辑"后,"编辑"文字变成"完成",再点击伪类元素后的"完成",此时的"完成"应该 ...

  5. easyUI datagrid中checkbox选中事件以及行点击事件,翻页之后还可以选中

    DataGrid其中与选择,勾选相关 DataGrid属性:singleSelect boolean 如果为true,则只允许选择一行. false ctrlSelect boolean 在启用多行选 ...

  6. ListView中itemz中控件的点击事件和条目点击事件冲突

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  7. Swift UITableView嵌套UICollectionView点击事件冲突(点击事件穿透)

    不管是啥都响应tableviewcell class JYShopCertificationCell: UITableViewCell { override func hitTest(_ point: ...

  8. JQuery给一个元素绑定两次点击事件(第二次点击事件)

    由于项目的要求,需要给复选框设置样式,初始样式:,第一次点击的时候显示,第二次点击时候需要改变该样式:. 设计思路: 当点击次数为奇数时显示带有颜色的图片 当点击次数为偶数时显示没有颜色的图片 下边是 ...

  9. [置顶] Android源码分析-点击事件派发机制

    转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17339857 概述 一直想写篇关于Android事件派发机制的文章,却一直没 ...

  10. Android源码分析-点击事件派发机制

    转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17339857 概述 一直想写篇关于Android事件派发机制的文章,却一直没 ...

随机推荐

  1. PHP之旅9 MySQL数据库

    PHP最主要的还是进行数据处理的,所以与数据库的交互是非常重要的. 现在主流的数据库有:Oracle.DB2.Microsoft SQL Server.MySQL等. MySQL由于其体积小.速度快. ...

  2. ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

    Struts2未配置Log4j2.xml报错 Log4j2.xml中的配置 log4j的jar包:log4j-core-2.7.jar log4j2只支持xml和json两种格式的配置,所以配置log ...

  3. 在阿里云服务器中安装配置mysql数据库完整教程

    阿里云ECS服务器CentOS7上安装MySql服务 (可选)1.确保服务器系统处于最新状态 [root@localhost ~]# yum -y update如果显示以下内容说明已经更新完成 Rep ...

  4. POJ 2389

    #include <iostream> #include <algorithm> #include <string> #define MAXN 300 using ...

  5. 优化 JS 条件语句的 5 个技巧

    优化 JS 条件语句的 5 个技巧 原创: 前端大全 前端大全 昨天 (给前端大全加星标,提升前端技能) 编译:伯乐在线/Mr.Dcheng http://blog.jobbole.com/11467 ...

  6. 启动Storm各个后台进程

    启动Storm的所有后台进程.和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在 任意时刻被停止,并且当进程重启后被正确地恢复执行.这也是为什么Stor ...

  7. Spring Security构建Rest服务-1202-Spring Security OAuth开发APP认证框架之重构3种登录方式

    SpringSecurityOAuth核心源码解析 蓝色表示接口,绿色表示类 1,TokenEndpoint 整个入口点,相当于一个controller,不同的授权模式获取token的地址都是 /oa ...

  8. 【jQuery源码】html,text,val

    jQuery封装的方法html,text,val .html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值 一.h ...

  9. 将AJAX Post的Data转为对应的Class

    在使用DataTables从服务端获取数据时,在非MVC的情况下没有MVC的自动绑定功能,所以需要自己写一个绑定,将Post过来的InputStream转为对应的类. HTML: <form i ...

  10. MJRefresh源码框架分析

    MJRefresh是一款非常优秀的刷新控件.代码简洁,优雅.今天有时间对源代码阅读了一下.对MJRefresh的宏观设计非常赞叹.所谓大道至简就是这样吧.   MJRefresh所采用的主要设计模式非 ...