Ajax 板


LINE

※ 引述《etman395 (技术时代)》之铭言: : 或许我不该擅自决定那样的事件补获叫做继承吧 : 就书上所讲事件往子元素传递那样叫事件补获 : 而你说的情形是事件冒泡 : 必须要子元素和父元素都绑定同样的事才会触发 : 就是子元素li click之後连带父元素的ul click事件也触发 我一开始就想回 , 只是你的问题我看不太出来你想要做什麽所以就搁着了. 其实这个事件真的没有这麽复杂 , 不需要特地区分为向下的捕获或向上的 bubble , 这只是混淆自己认知而已... 总的来说 , 这其实都只有向上的传递 , 也就是所谓 bubble 效果 . 只是 , bubble 的主角是谁的问题 , 这会牵扯到为什麽你要怎麽解决. 让我们先把层级拉出来 (sorry , 我现在比较懒得写完整的html code , 底下是示意有看不懂的要说 , 我先假设读者有基本html / jQuery event能力....) 先假设是这样 body{ div{ ul{ li{ } } } } 假设是这样的层级好了 . 今天的 bubble 的意思是说 , 我今天从哪个元素触发( trigger ) , 它会一路往上触发他的对应元素的父元件对应的事件 . 所以以你的命题 ul 来说 , 假设他定义了 click(function(){ alert("hi i am ul "); }); 这时候如果你去点击(click) ul , 这时候他理所当然会跑出 hi i am ul , 那你的问题就是你现在点的明明就是 li , 为什麽也会出现 "hi i am ul" . 这很简单啊 , 因为 li.click -> ul.click -> div.click -> body.click 这就是起点由li 开始的bubble 现象... 我们说 ul.click(function(e){ e.stopPropagation(); //直接复制的,平常都直接写false... e.preventDefault(); //or return false; }); 这是说 他的流程会从 li.click -> ul.click -\-> 因为被阻止了 , 他的讯息不会再往上传. 但是这对 li.click 上来想阻止他传给ul.click 的事件是无效 , 因为根本就没挡对...... XD . 所以你的问题在於说 , 你只有某特定元素(ex. ul)被点击的时候 , 你才想执行 , 而且你认为只有 trigger 对象直接是指到该元素 , 而不是该元素的子元素(ex. li)时才进行事件的处理. 所谓event.target 指的是真正被点到的那个直接元素 , 如果是 li被 click , event.target 就是 li , if( li == this ){ // this是看event是由谁bind 就是谁 , 在这例子是ul //所以等同於 if(li==ul){} //do the thing you want } 所以在这样的状况下 , 当然只有 ul 被click 有效 . 其实严格来说还有另一个後遗症会比较多的解法 . $("ul *").click(function(){ return false; }); (窃笑) 至於为什麽这样能解按照上面的逻辑应该是想的出来, 所谓的後遗症就是 <a> 这类靠click的事件完全都会被挡掉. -- 哦附带一题 , <a> 的转换网址事件是排在onclick之後的 , 转换网址这个行为 , 其实也是 bubble 的效果. -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.156.164 ※ 编辑: TonyQ 来自: 220.136.156.164 (12/06 15:50) ※ 编辑: TonyQ 来自: 220.136.156.164 (12/06 15:52)
1F:→ TonyQ:再题外话 , 这也是 #1B4D_Val 这篇提到live event的处理方案 12/06 15:57
2F:推 adahsu:其实我那个范例就是想示范这个单纯的 bubble 效果而以 (茶) 12/06 20:05
3F:→ adahsu:刻意把 list2 加上 margin 是因为这样才容易点到 UL 元素 12/06 20:06
4F:推 etman395:谢谢二位前辈的回答:D 12/06 20:41







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP