美文网首页让前端飞Web前端之路
如何在DOM元素加载完毕后执行js代码以及DOM加载过程

如何在DOM元素加载完毕后执行js代码以及DOM加载过程

作者: 垃圾简书_吃枣药丸 | 来源:发表于2017-05-31 21:28 被阅读541次

最近在写一个动态菜单。即,根据用户角色权限生成菜单选项。动态菜单采用js进行html代码拼接,再append到相应的节点。但是存在一个问题,就是菜单功能的js代码会在DOM元素加载完成之前执行,也就是菜单生成之前执行,所以所有绑定的菜单点击事件都不能执行。

认识DOM和DOM加载过程以及如何让DOM加载完成后再执行js脚本文件

<b>DOM加载过程:</b>
网页文档加载都是按顺序执行的。一般浏览器渲染操作顺序大致是一下几个步骤:
1.解析HTML结构
2.加载外部脚本和样式表文件
3.解析并执行脚本代码
4.构造HTML DOM模型
5.加载图片等外部文件
6.页面加载完毕

从以上顺序可以看出,js等脚本会在DOM文档构造之前执行,这样js就无法访问DOM文档对象模型。所以一般把可执行脚本放在页面初始化事件处理函数中,这样能确保文档加载完毕后再执行脚本。所以我们一般这样写:
window.onload = function(){//执行脚本}
window.onload表示页面加载完了后(包括dom和js)

window.onload = function(){//执行脚本}

这样的话,这段js代码将会在DOM元素加载完毕之后进行菜单点击事件的绑定。

这个问题调试了很久很久,最后一行代码就解决了。233...
代码真是需要多写,多累积经验。感触太深了。QAQ

window.onload大法好啊!

6-1

谈谈document.ready和window.onload的区别

在Jquery里面,我们可以看到两种写法:$(function(){}) 和$(document).ready(function(){})

这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。

而window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(document).ready要比window.onload先执行。

原文地址:谈谈document.ready和window.onload的区别

相关文章

  • 如何在DOM元素加载完毕后执行js代码以及DOM加载过程

    最近在写一个动态菜单。即,根据用户角色权限生成菜单选项。动态菜单采用js进行html代码拼接,再append到相应...

  • 01-JQuery入口函数

    JQuery入口函数 JS原生入口函数特点原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行原生的JS如...

  • jQuery表单验证

    JQuery表单验证 提交 // HTML DOM加载完成后执行JS代码$...

  • 3.JQuery中的事件和JQuery中的DOM动画

    一、JQuery中的事件 1.加载DOM 在页面加载完毕后,浏览器会通过 JavaScript 为 DOM 元素添...

  • [Vue] Vue学习之路

    v-if 当页面加载了Vue.js后,可以在DOM元素上加入v-if属性,用于该DOM元素的显示与隐藏 上面的代码...

  • jQuery常用方法

    $(document).ready() DOM加载完毕后,指定一个函数来执行,使用方法 可以把js放在下面的函数里...

  • JQuery小结

    一、页面加载 JQ的页面加载比JS要快,当整个dom树结构生成完毕后就会加载 JQ页面加载不存在覆盖问题,加载的时...

  • jQuery2

    jQuery 中, $(document).ready()是什么意思? 当DOM加载完毕以后,执行指定的代码 wi...

  • jQuery(function(){ })与(function(

    jQuery(function(){ }) 意义为在DOM加载完毕后执行了ready()方法。 全写为 jQuer...

  • jQuery动画

    1、jQuery 中, $(document).ready()是什么意思? 就是必须在DOM全部加载完毕后调用js...

网友评论

    本文标题:如何在DOM元素加载完毕后执行js代码以及DOM加载过程

    本文链接:https://www.haomeiwen.com/subject/ysnjfxtx.html