龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JavaScript 钩子机制(1)(2)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
钩子机制 钩子机制是这样的,大家按照某一规则写一个方法(这个规则在方法名称上),然后页面加载完之前,统一执行所有的钩子函数。 498)this.width=

钩子机制

钩子机制是这样的,大家按照某一规则写一个方法(这个规则在方法名称上),然后页面加载完之前,统一执行所有的钩子函数。

注意callHooks方法,里面的局部变量s就是钩子函数名称中一定要有的内容。——这是使用钩子的方法!

  1. // 处理钩子的对象  
  2. var hook = (function(){  
  3.     return {  
  4.         timer:null,  
  5.         init:function(){  
  6.             this.callHooks('init');  
  7.         },    
  8.         callHooks:function(init){  
  9.             var s = "hook_" + init + '_event',  
  10.             f = [];   
  11.             for(var h in window){  
  12.                 if(h.indexOf(s) != 0) continue;  
  13.                 f.push(h);  
  14.             }     
  15.             this.hooksTimeout(f);  
  16.         },    
  17.         hooksTimeout:function(hooks){  
  18.             if(0 === hooks.length){  
  19.                 if(this.timer) clearTimeout(this.timer);  
  20.                 return;  
  21.             }     
  22.  
  23.             var h = hooks.shift();  
  24.             window[h].apply();  
  25.             window[h] = undefined;  
  26.  
  27.             window.setTimeout(this.hooksTimeout(hooks), 200);  
  28.         }     
  29.     }     
  30. }());  
  31.  
  32. // 钩子1  
  33. var hook_init_event_tpl_html = function(){  
  34.     document.getElementById('test').innerHTML = 'This is HTML!';  
  35. }  
  36.  
  37. // 钩子2  
  38. var hook_init_event_tpl_console = function(){  
  39.     console.log('This is console!');  
  40. }  
  41.  
  42. // 最好在页面加载完之前调用,也就是在window.onload()之前  
  43. hook.init(); 

总结

很多问题,如果大家一起讨论是很有帮助的,在这过程中我们能学到很多东西,我们也可以在这过程中从牛人身上学到很多方法和思维过程,几乎每次的技术讨论会我都有不菲的收获——我不知道这是不是传说中的“头脑风暴”。

http://www.cnblogs.com/baochuan/archive/2012/06/11/2542048.html

【责任编辑:张伟 TEL:(010)68476606】
精彩图集

赞助商链接