源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

myEvent.js javascript跨浏览器事件框架

  • 时间:2022-01-08 15:58 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:myEvent.js javascript跨浏览器事件框架
event究竟有多么复杂?可见前辈的6年前的努力:[url=http://www.1sucai.cn/article/28637.htm]最佳的addEvent是怎样诞生的[/url],后起之秀jQuery也付出了一千六百多行血汗代码(v 1.5.1)搞定了6年后出现的各种核的浏览器。 我参考前辈的代码以及自己的理解尝试写了一个事件框架,我的框架完成了一个事件机制的核心,它能提供统一接口实现多事件绑定以及避免内存泄漏等其他一些问题,更重要的是性能还不错。 [b]我的手法:[/b] 所有回调函数根据元素、事件类型、回调函数唯一ID缓存在一个_create对象中(其内部具体结构可见下面源码的关于_cache的注释)。 事件绑定使用一个_create代理函数处理,并且一个元素的各类型事件全部通过此进行分发,同时运用apply方法让IE的指针指向元素。 通过数组队列解决IE回调函数执行顺序的问题。 fix函数将处理回调函数传入的event参数以及其他兼容问题。此处参考了jQuery.event.fix。 断开事件与元素的循环引用避免内存泄漏。 [b]一、核心实现: [/b]
[url=http://www.planeart.cn/demo/myEvent/]http://www.planeart.cn/demo/myEvent/[/url] [b]二、扩展自定义事件机制[/b] jQuery是可以自定义事件的,它用一个special命名空间存储自定义事件,我在上面代码的基础上模仿jQuery自定义事件机制,并把其著名的ready事件与另外一个jQuery hashchange事件插件移植过来。 这两个自定义事件非常重要,ready事件可以在DOM就绪给元素绑定事件,比传统使用window.onload要快很多;hashchange事件可以监听锚点改变,常用于解决AJAX历史记录问题,如Twitter新版本就就采用此处理AJAX,使用锚点机制除了可以提高AJAX应用程序的用户体验外,如果按照一定规则还能被google索引到。 当然,我前面文章实现的imgReady事件也可以通过此扩展进来,稍后更新。
[url=http://www.cnblogs.com/rubylouvre/archive/2010/03/26/1696182.html]javascript 跨浏览器的事件系统[/url](司徒正美。他博客有一系列的讲解) [url=http://www.1sucai.cn/article/28639.htm]更优雅的兼容[/url](BELLEVE INVIS)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部