zoukankan      html  css  js  c++  java
  • javascript学习—理解addLoadEvent函数

    onload事件是HTML DOM Event 对象的一个属性,又叫事件句柄(Event Handlers),它会在页面或图像加载完成后(注意是加载完成后)立即发生。

    window.onload = func的作用就是在页面加载完成后将func函数绑定到onload事件上并执行。如果页面加载完成之后,只需要执行一个函数func,那么只用window.onload = func也就可以了,但是如果需要执行两个甚至多个函数呢?

    直接调用两次onload不就行了:

    window.onload=firstfunction;
    window.onload=secondfunction;

    这么做的话,只有secondfunction会被绑定,因为前面的值被后面的值覆盖了。那么该怎么办?

    将两个函数合并到一个函数当中不就行了,匿名函数发挥作用的时候到了:

    window.onload = function() {
        fristfunction;
        secondfunction;
    }

    不过,它也只能绑定两个函数。还好,大神们早已解决了这个问题。西蒙·威利森 (Simon Willison)——jQuery框架的开发者之一编写了下面的addLoadEvent函数:

    function addLoadEvent(func) {
        var oldonload = window.onload;//将现有的事件处理函数的值存入变量中
        if (typeof window.onload != 'function') {
            window.onload = func;//如果这个事件处理函数没有绑定任何函数,就把新函数添加给它
        } else {
            window.onload = function() {
                oldonload();
                func();//如果已经绑定了函数,就把新函数追加到现有指令的末尾
          }
        }
    }
    

    然后,不管页面加载完成后要执行多少个函数,只要调用这个函数就可以了:

    addLoadEvent(firstfunction);
    addLoadEvent(secondfunction);
    addLoadEvent(thirdfunction);
    ...

  • 相关阅读:
    LeetCode每周记录-3
    leetcode每周记录
    leetcode每周记录
    软件工程课程总结报告
    微信抢票应用开发总结
    C#获取项目程序及运行路径的方
    python opencv 读取USB摄像头的像素问题
    去除激活水印办法
    系统激活成功仍显示水印,取消激活方法
    bytes,bytearray
  • 原文地址:https://www.cnblogs.com/aaaazzzz/p/14484062.html
Copyright © 2011-2022 走看看