Ajax 板


LINE

1. return false 是用来停止default action的 并不能停止bubbling 正确的停止bubbling的程式码是 if (event.stopPropagation) event.stopPropagation(); event.cancelBubble=true; 2. 依据第二篇回文所述 → knives:还有我是写onclick="ajaxget(url,ajaxid"),那里面还是写 07/26 16:53 → knives: event.stopPropagation();吗,还是没有效果 onclick="ajaxget(url,ajaxid)" 为写在html中的 Inline event handlers(行内注册事件处理函式) 事件处理函式的注册方法共有三种 A.Inline event handlers(行内注册事件处理函式) : 最古老的将执行段加在html元素的属性中 B.Tranditional model(传统模式) : 在分离的javascript中为要引发事件的元件指名处理函式 如下片段 <a href="xx.html" id="xx"> var x = document.getElementById('xx'); x.onclick = eventhandler eventhandler为一个function C.Advanced model(进阶模式) : 分为W3C和Microsoft两类 W3C下: x.addEventListener('click',eventhandler,false); Microsoft下: x.attachEvent('onclick',eventhandler); (以上事件注册模式请参考ppk on javascript 7-c小节) 行内注册模式的等价传统模式程式码为 Lv2.onclick = function () { ajaxget(url,ajaxid); } 在html中 属性onclick = "xxxxxxx" 双括弧中的内文 相当於在传统模式的事件处理函式中了 因此我再尝试将你的问题重新描述一遍 <div id="Lv1"> <div id="Lv2" onclick="ajaxget(url,ajaxid)"> </div> </div> 也就是我有一段行内注册的码 但是没办法获取event物件 因此不知该怎麽关掉他的bubbling 而错误的用了关闭default action的return false; 要解决这个问题必须分成两段思考 第一先把行内注册翻译成等价的传统模式 写好了传统模式 再把他反推回去 <div id="Lv1"> <div id="Lv2" onclick="ajaxget(url,ajaxid)"> </div> </div> 相当於 Lv2.onclick = xx; function xx() { ajaxget(url,ajaxid); } 我要如何在没有传参数的event handler中得到event物件呢 答案是 事实上他有传 在ie中无时无刻的window.event记载着event物件 而在W3C中虽然你的处理函式没有参数 但是W3C依旧有传 你可以用arguments[0]获取event物件 在传统模式只要把程式码改成 Lv2.onclick = xx; function xx() { var w3cevt=(!!arguments.length)&&arguments[0]; //用arguments.length判断是否有传参数 有的话arguments[0]就是event物件 var event = w3cevt || window.event ; //如果没有那麽就是ie的window.event了 ajaxget(url,ajaxid); //再加上停止bubbling的程式片段 if (event.stopPropagation) event.stopPropagation(); event.cancelBubble=true; } 得到等价的传统模式程式码後 我们再把他回覆成行内注册模式 <div id="Lv1"> <div id="Lv2" onclick=" var w3cevt=(!!arguments.length)&&arguments[0]; var event = w3cevt || window.event; ajaxget(url,ajaxid); if (event.stopPropagation) event.stopPropagation(); event.cancelBubble=true; "> </div> </div> 以上 请问是否有了解 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.19.240 ※ 编辑: sk1765 来自: 61.59.19.240 (08/14 11:54)
1F:推 s25g5d4:好...恐怖 高手如云的AJAX版 08/14 12:54
2F:推 s25g5d4:m文!收拉! (快推不然人家说我们看不懂 08/14 12:56
3F:→ grence:jQuery绑定的事件里 return false = 取消预设跟停止buble 08/14 14:11
4F:→ grence:然後,如果可以…还是不建议把事件写在 html里 08/14 14:12
5F:→ TonyQ:那是 jQuery 的自定义行为。:3 08/14 15:01







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灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP