zoukankan      html  css  js  c++  java
  • js入口函数跟jQuery入口函数的区别

    JS的window.onload事件必须要等到所有内容,以及外部图片之类的文件加载完之后,才会去执行。

    JQuery入口函数是在所有标签加载完之后,就会去执行。

    接着,通过JS的一个覆盖问题引出对JQuery入口函数实现的解释。

    JS的入口函数window.onload函数有一个覆盖的问题,当文档中出现2个window.onload函数的时候,后者会覆盖前者,导致功能实现不了。但是JQuery却没有这样的问题,重要是因为JQuery入口函数只是对封装好了的方法的一个调用,只不过传的参数不同而已。

    最后,说说JQuery入口函数($(document).ready();)的实现方式。

    首先,我们在script标签中我们先创建一个函数变量就叫$,然后,在后面调用。现在并没有任何效果,因为这个调用的只是一个空的对象,没有任何参数。如果我们想在$()后面继续调用,还需要做一些事情。我们看JQuery入口函数中是不是有个ready方法,那我们可以创建一个对象的属性就叫ready,然后将ready指向一个匿名的函数,现在我们就可以通过$().ready()来调用了。

    用一个具体的函数测试一下:

    接着,JQuery入口函数可以传一个函数(作为变量传入)进来,即$().ready(function(){}),然后用一个形参(func)变量接收,那么严格执行接收的这个方法,只要调用一下(func())就行。

    下面再看看JQuery入口函数前面的document参数,即$(document).ready(function(){}),这样和JQuery的入口函数就一模一样了。同样需要用一个变量接收。最后只要在ready函数里面去判断一下这个onload事件有没有(或者说有没有被赋值):

    (1)有(被赋值),接收一个旧的函数,重新赋值onload事件,然后先去调用新的函数,接着再调用旧的函数,这样就不会有覆盖的问题,他俩个函数都实现了。

    (2)没有,直接赋值个onload事件。

    最后,我们来测试一下,由于document没有onload事件,我们可以用window来试一下。

    这样就避免了函数覆盖的问题。

  • 相关阅读:
    windows中dos命令指南
    HDU 2084 数塔 (dp)
    HDU 1176 免费馅饼 (dp)
    HDU 1004 Let the Balloon Rise (map)
    变态杀人狂 (数学)
    HDU 2717 Catch That Cow (深搜)
    HDU 1234 开门人和关门人 (模拟)
    HDU 1070 Milk (模拟)
    HDU 1175 连连看 (深搜+剪枝)
    HDU 1159 Common Subsequence (dp)
  • 原文地址:https://www.cnblogs.com/Daisy0331/p/8970013.html
Copyright © 2011-2022 走看看