zoukankan      html  css  js  c++  java
  • addLoadEvent(func)有关

    今天看编程艺术看到了这个函数,具体代码如下:

     1 function addLoadEvent(func) {
     2   var oldonload = window.onload;
     3   if (typeof window.onload != 'function') {
     4     window.onload = func;
     5   } else {
     6     window.onload = function() {
     7       if (oldonload) {
     8         oldonload();
     9       }
    10       func();
    11     }
    12   }
    13 }

    调用方法是:

    addLoadEvent(function() {   
        document.body.style.backgroundColor = 'yellow';   
    })   
    
    
    addLoadEvent(firstFunction);  

    因为我们知道在一个JS文件里面只能有一个window.onload事件,如果我们用window.onload = firstFunction; window.onload = secondFunction;那样的话secondFunction将取代firstFunction.

    PS,用jquery的事件可以重复调用,就是

    $(document).ready(function() {
    //doing... 
    });

    我们也可以这么写:

    window.onload = function(){
      firstFunction();
      secondFunction();
    }

    但是在绑定很多个函数的时候,这么写太麻烦了。。。

    所以才有了上面的addLoadEvent函数,

    这个函数要完成的操作是:

    1,把现有的window.onload事件处理函数的值存入变量oldonload。

    2,如果这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它。

    3,如果这个处理函数上已经绑定了一些函数,就把新函数追加到现有函数的尾部。

    这里比较巧妙的是在判断是福绑定函数的判断上,if(typeof window.onload != "function")。

  • 相关阅读:
    leetcode 283. 移动零
    leetcode 547. 朋友圈
    【剑指offer37】二叉树的序列化
    腾讯数据岗
    华为笔试题2
    华为笔试题1
    leetcode 分割回文串
    leetcode 正则表达式匹配
    leetcode241 为运算表达式设计优先级
    leetcode 44. 通配符匹配
  • 原文地址:https://www.cnblogs.com/chijijuedi/p/2545253.html
Copyright © 2011-2022 走看看