我正在尝试使用javascript核心概念,并遇到了这个有趣的想法。当我使用本机javascript并尝试在文档加载上执行一些事件时,我得到一个错误:
document.addEventListener('load',function(){ //this doesn't alert doesn't get fired
alert("document load event listener fired!");
});
但如果我将上面的代码更改为以下代码,则可以正常工作:
window.addEventListener('load',function(){//this works alert gets fired
alert("Window load event listener fired!");
});
我想到的一个可能的解释是,浏览器对象模型中的父对象首先被加载,然后才能准备好或访问其他任何内容。
然而在jQuery(我更熟悉的东西)中,语法清楚地从文档开始如下:
$(document).ready(function() {
// some code here
});
我猜jQuery有一个围绕$(document)的内置包装器,它实际上负责触发窗口加载事件,然后才能执行其中提到的任何进一步的代码。
我的理解是否正确?