【Web】豆瓣绑定事件的方法初探

        在mygoare的指导下,大致看了一下实现过程,感谢毛哥,每次和他交谈都受益匪浅~ 下面以豆瓣读书为例,在未登陆状态下,点击“想读”等按键,会弹出登陆框
 
        查看此元素,有两个特殊的类“j”“a_show_login”。关于右边的事件绑定,进去这个js文件并不能找到相关功能,所以我只好全部搜索其他js文件。
 
        根据常规命名习惯可以猜想,这个登陆框的函数应该是“show_login”,所以搜索的关键字是“show_login”,挨个js文件搜索。最后在 "packed_master2876199327.js"找到相关方法, load_event_monitor方法,给所有带 “j”的类绑定事件。正则“/a_(\w+)/”就是获取类名带“a_”前缀的类。
        普通的事件绑定会类似这样获取DOM对象“$(selectors……)”然后挨个绑定,但是对于大网站来说是个可怕的事情,豆瓣旗下还有很多产品,都需要做登陆检测,再如果多加几个功能也需要做检测,就悲剧了。所以为了提高复用性,就得有高效、不复写js的办法。这个函数就是干这件事,分析含有类“j”的DOM对象所含的“a_”类名,根据类名绑定相应事件。
        actionName就是分析出来的功能,然后指定给 Douban.init_actionName()方法。
 
        例如这里的a_show_login 就指定给 Douban.init_show_login()。
 
还有很多类似的事件,都是这样统一绑定的,例如:
 
 

≡≡≡≡≡≡≡≡≡≡★ From Laker's blog ★≡≡≡≡≡≡≡≡≡≡

¤ ╭⌒╮☀Coding and changing~☀ ╭╭ ⌒╮

✪Fighting and insisting~✪

posted @ 2013-05-16 01:38 youngLaker 阅读(...) 评论(...) 编辑 收藏