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. linux文件系统底层原理

    Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件.目录.软连接及文件保护信息等都存储在其中. 底层原理图: 在讲解各个 ...

  2. 从您的帐户中删除 App 及 iTunes Connect 开发人员帮助

    iTunes Connect 开发人员帮助 从您的帐户中删除 App 删除您不想继续销售或提供下载,且不会再重新使用其名称的 App.如果您的 App 至少有一个获准的版本,且最新版本处于下列状态之一 ...

  3. SqlServer内存占用查看

    查看每个数据库对内存的占用 SELECT ISNULL(DB_NAME(DATABASE_ID),'RESOURCEDB') AS DATABASENAME, ,)) AS 'SIZE(MB)' FR ...

  4. PHP基础记录

    1. require和require_once的区别 require_once()包涵是绝对路径 include() 和require() :语句包括并运行指定文件. include() 产生一个警告 ...

  5. django框架--cookie/session

    目录 一.http协议无状态问题 二.会话跟踪技术--cookie 1.对cookie的理解 2.cookie的使用接口 3.cookie的属性 4.使用cookie的问题 三.会话跟踪技术--ses ...

  6. (转)python函数: 内置函数

    原文:https://blog.csdn.net/pipisorry/article/details/44755423 https://juejin.im/post/5ae3ee096fb9a07aa ...

  7. web与app测试的区别

    单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的. 系统架构方面: web项目,一般都是b/s架构,基于浏览器的 app项目,则是c/s的,必须要有客户端,用 ...

  8. Android中实时预览UI和编写UI的各种技巧

    一.啰嗦 之前有读者反馈说,你搞这个所谓的最佳实践,每篇文章最后就给了一个库,感觉不是很高大上.其实,我在写这个系列之初就有想过这个问题.我的目的是:给出最实用的库来帮助我们开发,并且尽可能地说明这个 ...

  9. HMM分词实例

    class HMM(object): def __init__(self): import os # 主要是用于存取算法中间结果,不用每次都训练模型 self.model_file = 'model/ ...

  10. centos7的防火墙配置

    centos7 不在使用iptables作为防火墙, 而是使用firewalld规则, 好吃是支持动态更新, 不需要重启服务, 第二个就是加入了zone概念. 所以和centos6在防火墙配置上有很大 ...