在Angular2应用的webpack资产包的主文件中,我无法收听DOMContentLoaded
事件。
该文件只有以下几行:
// styles
const bootstrapLoader = require('bootstrap-loader');
const styleScss = require('./main.scss');
// scripts
const $ = require('jquery');
const jQueryUjs = require('jquery-ujs');
const coreJS = require('core-js');
const zoneJS = require('zone.js');
const reflectMetadata = require('reflect-metadata');
const myAngularApp = require('./main.ts');
document.addEventListener('DOMContentLoaded', function () {
console.log('Hola!');
});
另一方面,如果我使用jQuery,它可以完美地工作,id est,用以下几行改变最后三行:
$(document).ready(function() {
console.log('Hola!');
});
这看起来很基本,但我不明白为什么准备好的文件的普通javascript版本在这里不起作用...
非常感谢!
答案 0 :(得分:3)
它不一样
大多数浏览器以DOMContentLoaded事件的形式提供类似的功能。但是,jQuery的.ready()方法以一种重要且有用的方式不同:如果DOM准备就绪并且浏览器在代码调用.ready(handler)之前触发DOMContentLoaded,则仍将执行函数处理程序。相反,从未执行事件触发后添加的DOMContentLoaded事件侦听器。