原创部落格 /

JScript 事件的共用

上一篇
下一篇
本文
JScript 事件的共用
今天在增加网页功能时,遇到了一个大问题∶那就是当某些元件使用同一个事件时,若使用指定函数内容的方式来运作时,後者指定的函数会把前者函数覆写,所以前者就会失效啦!

这个问题第一个让我想到的是∶

addEventListener('click',function(){});

这个函数,说实在!我几乎没有用过这个函数,应该是说,没用到!哈哈!以前常常会想著像这样∶

object.onclick=function(){};

指定函数就好了,这一刻才了解addEventListener 这种函数存在的道理,把新函数累加到旧函数里去。

於是我很热血的查了一下addEventListener 的用法,发现不是每个浏览器都支援,於是又找到一个增加对於addEventListener 的支援的过载函数。

增加对於addEventListener 的支援
  1. if (!Element.prototype.addEventListener) {
  2. var oListeners = {};
  3. function runListeners(oEvent) {
  4. if (!oEvent) { oEvent = window.event; }
  5. for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {
  6. if (oEvtListeners.aEls[iElId] === this) {
  7. for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) { oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent); }
  8. break;
  9. }
  10. }
  11. }
  12. Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {
  13. if (oListeners.hasOwnProperty(sEventType)) {
  14. var oEvtListeners = oListeners[sEventType];
  15. for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {
  16. if (oEvtListeners.aEls[iElId] === this) { nElIdx = iElId; break; }
  17. }
  18. if (nElIdx === -1) {
  19. oEvtListeners.aEls.push(this);
  20. oEvtListeners.aEvts.push([fListener]);
  21. this["on" + sEventType] = runListeners;
  22. } else {
  23. var aElListeners = oEvtListeners.aEvts[nElIdx];
  24. if (this["on" + sEventType] !== runListeners) {
  25. aElListeners.splice(0);
  26. this["on" + sEventType] = runListeners;
  27. }
  28. for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {
  29. if (aElListeners[iLstId] === fListener) { return; }
  30. }
  31. aElListeners.push(fListener);
  32. }
  33. } else {
  34. oListeners[sEventType] = { aEls: [this], aEvts: [ [fListener] ] };
  35. this["on" + sEventType] = runListeners;
  36. }
  37. };
  38. Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {
  39. if (!oListeners.hasOwnProperty(sEventType)) { return; }
  40. var oEvtListeners = oListeners[sEventType];
  41. for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {
  42. if (oEvtListeners.aEls[iElId] === this) { nElIdx = iElId; break; }
  43. }
  44. if (nElIdx === -1) { return; }
  45. for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {
  46. if (aElListeners[iLstId] === fListener) { aElListeners.splice(iLstId, 1); }
  47. }
  48. };
  49. }

想说这一下好了,问题解决了!NO....

window.resize 这个事件没法动呀!整个就是作白工!所以整个就是很火大!害我花了那麽多时间...

最後鱼恋用了自己想到的办法∶

jaby_eventListener
  1. /* 作者∶鱼恋秋波 http://neil.heyxu.com */
  2. function jaby_eventListener(tar,icode){
  3. eval('var a = String('+tar+'?'+tar+':\'function(){}\')');
  4. var p1 = a.indexOf('{');
  5. var p2 = a.indexOf('}',-1);
  6. a = a.substring(p1+1,p2);
  7. var func = 'function(){ '+a+icode+'};';
  8. eval(tar+'='+func);
  9. }

简简单单解决了困扰的问题~

  • 本文为原创文章, 为尊重著作权, 未经作者同意请勿任意转载
  • 关键字 : iElId(16), oEvtListeners(15), iLstId(14), sEventType(11), aElListeners(9), nElIdx(8), function(8), oListeners(7), fListener(7), length(6), aEvts(6), runListeners(5), oEvent(5), return(3), prototype(3), break(3), Element(3), 整个就(2), 想到(2), window(2)
0 0
2011-10-10T18:15:00+0000

发表回响
 
验证字串

Facebook 粉丝专页

部落格目录

  • 魚戀秋波 Neil Y.K.的部落格
    • 心情·日记
      • 真情告白
        • 我是个男生,也是个女生
        • 等著走进我的世界
        • 翻过这个章节别再连络了
        • 凝结的记忆
        • 我爱我亲爱的你们
        • 真心它去了哪里
        • 给认识我却不懂得我的人
        • 就这样了
        • 彻彻底底的失望
        • 我会静静的等著
        • 值得一生守侯的人
        • 我的告白
        • 我知道奶的心意
      • 2017日记
        • 许久的老笔记
        • 小奸小恶能够影响什麽?!
        • 2017 岚鱼窝
      • 2014日记
        • 我的 Honda K7 维修记
        • 摩斯电码
        • 岚鱼窝2013尾牙餐聚
      • 2013日记
        • 星空蝶恋生日派对花絮
        • 岚鱼窝-樱花生日小派对
        • 2013 星空蝶恋生日派对规划
      • 2012日记
        • 从一则评论,学习眼的角度
        • 从天而降的小斑鸠
        • 午後的异想世界
        • 岚鱼窝2012
        • 咪奥
      • 2011日记
        • 陪伴整个十月的日出
        • 入围第六届全球华文部落格大奖
        • 跨越 2011
        • 狼不可怕
        • 2010 秋冬置装造型 Winter Style
        • 心想事成 All wishes will come true
        • 美人鱼游法
        • 需要好好休息一下
        • 补眠噜
        • 充实的一天
        • 戒不掉的好习惯
        • 乱七八糟的梦
        • 混乱的日子
        • 惊奇三月
        • 不要再挂了!
        • 喜欢冒险的人
        • 今日诸事不顺
        • 看!流星!
        • 双手
        • The sigil
        • 现金流游戏
        • 哈哈哈~男人呀
        • 鱼恋的小窝 - 小餐厅
        • 鱼恋秋波中文 Logo
        • 最不解了的人
        • Goodbye my dear
        • 新的日记本启用!
        • 我的 410 宝贝
        • 新计画要开始了
        • 讨人厌的网路蟑螂
        • 惊! 发现自己的作品被盗用
        • 阿姨~钱很难赚!不要这样啦~
        • 无奈的眼神
        • 那个名叫 L 的女孩
        • 周一的夜晚
        • 其实人类是外星产物
        • 大爱剧场-再牵你的手
        • 相信
        • 玫瑰魔法
        • 一首好久以前写的歌
        • 关键时刻
        • An old building coffee shop
        • 迷失
        • 善解
      • 2003日记
        • Trip to Hawlien
        • A cold night
        • 城市光廊
        • 洗脑
        • 姊姊失恋了
        • 她的生日
        • 国际烟火节
        • 大脑假
        • 金钱
        • 了解一个人
        • 周而复始
        • 爱情?
        • 双鱼
        • 狂暴
        • 告诉我
        • 难喝的咖啡
        • 结局
        • 无奈
        • 贝礼斯
        • 败家
        • 贵妇
        • 磨豆子
        • 时间与生命的空间意义
        • 换个心情
        • 无法呼吸
        • 分享
        • 情人节
        • 生存游戏
        • 幸福
        • 被困在书海中
        • Deep breathe
        • 溺水的鱼
        • 快乐
        • 今世独欲逄得诸人
        • 自撰
        • 等待
        • 失恋
        • 孤独
        • 我在微笑
        • Bed Spirit
        • Taipei Mainstation
    • 创作
      • 绘图
        • 你真的知道网路是什麽吗?
      • 摄影
        • 旗津夕阳
        • 树的生命力
        • 向日葵
        • 高雄大八餐聚
        • Tasty Kaohsiung
        • 白色圣诞树
      • 素描
        • 剪影夕阳
        • 我爱海洋与浪花
        • 封存
        • 伦敦铁桥
        • 等待
        • 两面之缘
        • 花莲南滨
        • 花莲美仑饭店
        • 安平夕阳
        • 旗津灯塔
        • 幽会的情侣
        • 牵手
      • 水草情迷
        • 我的水草鱼缸
      • 舞动程序
        • 关键词库系统搜寻及应用设计
        • 键盘测试工具
        • 宅配物流系统
        • 中文判定及转换程式
        • 图片裁切控制介面 ScaleFrame
        • 线上名片设计程式
        • 让列表像瀑布一样的 Puzzle 模组
        • 商品特徵设定程式
        • 网路履历程式
        • 整合搜寻模组
        • 全球地理管理工具
        • 传说中 IE 消失的文字
        • 全球化地理系统
        • 网页轮播模组
        • 黑族塔罗牌阵程式
        • 英文地址转换程式英文地址转换程式
        • 黑族纸娃娃系统黑族纸娃娃系统
        • 索引地图建立工具
        • 推荐好用的文字编辑器
        • JScript 事件的共用
        • 设定 PHP 档案上传容量限制
        • 许久不见的侦错模式
        • 解决 Flash 无法在原网页开启连结
        • 雷达图产生程式
        • 相片杂凑工具
        • Facebook 网站应用
        • 自创的防木马登入网页
      • 文学
        • 爱不能复制也不能拷贝
        • 不懂
        • 未完成的新作品
        • 眼里掩不住的震撼
        • 2010 旗津夕阳之美
        • 人生·玄机
        • 白黑天使
        • 飞翔
        • 暧昧咖啡
        • 天籁之音
        • 风儿是上帝的天使
        • 铝线创意(蜻蜓)
        • 海底世界布景
        • 了解
        • 记得了就忘了
        • 角度
        • 完整
        • 幸福玉米田
        • 落翼
        • 打油诗
        • 鱼恋秋波语录
    • 我的工作
      • 电脑维修
        • 钟王牌高功率扩音机维修
        • SONY Z3 触控故障维修
        • HTC M8 萤幕破裂维修
        • Samsung P2370 维修
        • Necvox HQ1.2 汽车音响维修
        • ASUS F81S 开机三秒断电、无法开机维修
        • PaPaGo 更换电池
        • Samsung Galaxy Tab4 维修
        • Lenovo G450 电池维修
        • 工业熨斗维修
        • 维修 Dennys MD-230 DVD Player
        • 小米 Note2 充电座维修
        • HTC OneX 故障检修
        • LCD 萤幕修理
        • 征服 Windows 7
        • 电脑维修 - 笔记型电脑电源故障修复
        • 资料救援 - 硬碟资料救援
        • 接案∶电脑资料救援
      • 商业美工
        • 商业美工 - 黛夫人晚宴礼服
      • 接案工程
        • 模型加速器推捍
        • 居家网路建置
        • 网路规划 - 拾穗社区网路建置案
      • 备忘录
        • Windows 7 免重装切换 AHCI 模式
        • CentOS 笔记
        • Win7 备忘录
        • 清除系统垃圾
        • Mysql 备忘录
        • CSS 阴影效果
        • JScript 备忘录
        • CSS 设计备忘录
        • PHP 程式备忘录
        • Linux shell 笔记
        • Apache 架设备忘录
        • CSS Selector 种类简介
      • 黑族
        • 黑族网站系统搜寻最佳化 SEO
        • 黑族在地生活介绍-商家篇
        • 黑族世界地图绘制
        • 黑族在地生活传单
        • 卢恩符文图示
        • 2012 黑族新名片
        • 黑族KTV 点歌簿教学
        • 在地生活邀请信件
        • 终於有国际加密认证了!
    • 杂七杂八DIY
      • K7 时速感测器更换
      • 更换 LED 刹车灯,故障检测电路修改
      • K7 发电机更换
      • 废弃餐桌变身和室桌大改造
      • 咔辣姆久变身花器
      • 自制鱼窝温泉
      • 破旧的小台灯大改造
      • 萤光立灯改造遥控调光 LED 灯
      • 星战的语音感应器设计 商店推荐
      • 模组化 LED 灯设计 商店推荐
      • 爱车内装改造 DIY
      • DIY 蜂巢零件柜
      • 小沙发的新衣
      • 第二代伺服器散热机柜 DIY 投稿文章
      • 自制木工裁桌 DIY 投稿文章
      • 属於自己的卢恩符文 投稿文章
      • 占卜与松饼海报 商店推荐
      • 杏仁瓦片饼乾 投稿文章
      • 逆电流实作 投稿文章 商店推荐
      • 小绵羊大解体
      • 特殊尺寸让电脑维修困难 投稿文章 商店推荐
      • 自己剪头发
      • 惊人的可颂
      • 不小心挂掉的硬碟
      • 飞瑞UPS改装 商店推荐
    • 流浪札记
      • 小乌来风动石它滚了!!!
      • 轩尼诗炫音派对
      • 屋顶酒吧
      • Doulos 忠仆号
      • 澎湖玩疯乐
      • 南横露营棉
      • L 的公司旅游
      • 绿世界生态农场
      • 云门 cafe Taipei
      • Cold Taipei
    • 玩乐情报
      • 10/27 LAMP万圣恶灵派对
      • 纸牌游戏 - 妙语说书人 投稿文章
      • 纸牌游戏 - 谍影危机 投稿文章
      • 左营三牛牛肉面 商店推荐
      • 异国风灯塔美式酒馆 投稿文章 商店推荐
      • 我的香港首航
      • 我的香港首航 - 道具篇 投稿文章
      • 魔兽争霸之信长野望
    • 生活话题
      • 台湾选民们,到底想怎麽样?!
      • 2020 民主价值
      • 2020 民主台湾
      • 解决台湾的乱象,不是换个政治人物做看看,而是人民要换个脑袋
      • 马英九与王金平的九月政争 投稿文章
      • 智慧型手机我怎麽选
      • 我们社会的病源在哪
      • 要照顾肯为你卖命的伙伴
      • 欧巴桑的环保
      • 排放厨房油烟要罚款
    • 经方中医
      • H1N1疫苗风波与社会问题
      • 伤寒杂病论
      • 看到快吐血的猪流感专访
      • 施打疫苗、终身受害
      • 救人还得看缘份
      • 只有感慨
      • 看不清事实的人
      • 送孩子受教育干什麽!
      • 发烧处理不当变癌症
    • 未分类

    部落格列表

    QRCode 条码 & APP 连结

    说明
    本页网址

    在相关服务标签中,『扫描条码,在行动装置』或是『点击连结按钮,在本装置』中开启网页或是 APP 相关操作。
    QRCode

    访客浏览统计

    • 访客人数 : 8,125,497
    • 浏览次数 : 8,310,200
    • 浏览深度 : 102.3 %