一开始上html代码

<div id="div1" style="background: blue;width: 100px; height: 100px;">
<div id="div2" style="background: red;width: 70px; height: 70px;">
</div>
</div>

就是这样的一段代码,

大的div==>div1

小的div==>div2

当代码是

$('#div1').click(function(e) {
alert('div1');
})
$('#div2').click(function(e) {
alert('div2');
})

正常这样写点击代码,当点击在div2上这个区域,会触发到div1的点击事件,就是会先弹出div2-->div1

但是我想要的效果只是想点击div2区域时,只弹出div2

那现在这里有两种方案,还有的请欢迎补充

第一种,因为是冒泡了,所以阻止冒泡

$('#div1').click(function(e) {
alert('div1');
})
$('#div2').click(function(e) {
e.stopPropagation()
alert('div2');
})

这样的话,点击div2区域只会弹出div2

点击div1只会弹出div1

第二种,因为div2覆盖在div1里面,所以不管你点击那个地方,都是触发了div1的区域,所以当点击的时候,判断这个区域是不是div2的区域,如果是的话,就触发div2,如果不是的话就触发div1

 $('#div1').click(function(e){
// e.preventDefault();
if($(e.target).is('#div2')){
alert('div2')
}else{
alert('div1')
}
})

好了 我试过的就是这两种方案,欢迎大家指教补充

现在还有一种情况,就是如果是两个div外面还有一个a标签的话,想点击大的div的时候跳转链接,点击小的div的话还是执行其他操作的话

html结构代码如下

   <a href='http://www.baidu.com'>
<div id="div1" style="background: blue;width: 100px; height: 100px;">
<div id="div2" style="background: red;width: 70px; height: 70px;">
</div>
</div>
</a>

现在的效果是想点击div2的时候执行一个事件,点击div1的时候跳转链接

这样的话可以有两种方案

第一种:阻止默认事件也就是a标签跳转

$('#div2').click(function(e) {

    alert('div2');
event.preventDefault();
})

第二种:return

$('#div2').click(function(e) {

    alert('div2');
return false;
})

一个大div里面包裹一个小div,里面的小div的点击事件不触发外面的这个大div的点击事件的更多相关文章

  1. WPF 自定义一个控件,当点击按钮是触发到ViewModel(业务逻辑部分)和Xaml路由事件(页面逻辑部分)

    #region - 用于绑定ViewModel部分 - public ICommand Command { get { return (ICommand)GetValue(CommandPropert ...

  2. div+css 怎么让一个小div在另一个大div里面 垂直居中

    div+css 怎么让一个小div在另一个大div里面 垂直居中 方法1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 .parent {           width:800 ...

  3. WEB前端面试题 分别使用2个、3个、5个DIV画出一个大的红十字

    <!DOCTYPE html> <!--两个DIV--> <html> <body> <div style="width:100%;he ...

  4. 6.bootstrap 将文本内容关联一个动作(手机端导航适配)&在超小尺寸下显示,屏幕变大后消失

    1.情景:这是出现在手机端导航适配的,点击文本MENU可以出现下拉的list 解决方法: 1.首先要想到,MENU只有两个状态,因此可以用checkbox实现 2.将MENU放在label标签里面,l ...

  5. DIV+CSS常见问题:DIV如何设置一个像素高度?

    CSS如何控制DIV实现1像素高度呢?问题看起来很简单,但万恶的IE6会让你很麻烦,不过解决办法很多,本文将介绍最简单的一种:DIV{height:1px;line-height:1px;font-s ...

  6. 如何让一个div里面的div垂直居中?

    如何让一个div里面的div垂直居中? 如何让上面灰色有文字那个div和背景图标垂直居中,不管屏幕大小有好大,始终在垂直方向上的中间.上面有整个布局和样式表,谢谢高手指点 CSS3时代当然要用CSS3 ...

  7. 一个页面两个div(一个柱状图或者折线图一个饼图)

    需求是一个页面中两个图,一个饼图一个折线图,接口用的是一个接口,柱状图的图例要隐藏掉,X轴为月份,每月份都有两个数据,也就是图例是两个(进口和出口)的意思饼图需要显示最新月份数据,并且有一个下拉框可以 ...

  8. div中放入一个img元素导致div高度会多出几个像素

    在写代码的时候经常遇到这样一个问题,如果div里嵌套一个img元素且div的高度是由img的高度来撑开,那么div的高度总会比img的高度多3px.好了,废话不多说,直接给大家上代码. html代码: ...

  9. 点击一个div隐藏另一个div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. Warning: Received `false` for a non-boolean attribute `xxx`.

    React对boolean类型的attribute的识别方式问题,可以采用以下方法解决: xxx={value ? 1 : 0} 改成数字的写法,不用布尔值. 具体可以参考:https://githu ...

  2. 5028: 小Z的加油店(线段树)

    NOI2012魔幻棋盘弱化版 gcd(a,b,c,d,e)=gcd(a,b-a,c-b,d-c,e-d) 然后就可以把区间修改变成差分后的点修了. 用BIT维护原序列,线段树维护区间gcd,支持点修区 ...

  3. Android Json解析与总结

    一.JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

  4. String类的用法

    练习如何创建一个类. package create; public class Newstring { String aa; public Newstring() { // TODO Auto-gen ...

  5. Codeforces Round #493 (Div. 2)D. Roman Digits 第一道打表找规律题目

    D. Roman Digits time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  6. HRBUST 1819

    石子合并问题--圆形版 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 61(27 users) Total Accepted: 26( ...

  7. HDU1358 KMP(最短循环节)

    Period Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  8. File file:/data1/hadoop/yarn/local/usercache/hp/appcache/application_* does not exi

    AM Container for appattempt_1453292851883_0381_000002 exited with exitCode: -1000For more detailed o ...

  9. JavaScript字符串逆序

    如何对字符串进行倒序呢?你首先想到的方法就是生成一个栈,从尾到头依次取出字符串中的字符压入栈中,然后把栈连接成字符串. var reverse = function( str ){ var stack ...

  10. margin 居中

    左右auto加个宽度.margin-left: auto; margin-right: auto; width:640px;