window.onload有时只能工作,而alert()可以使它工作

问题描述 投票:0回答:1

这与我最近发布的一个问题有关,因此很抱歉再次提出要求,但是我无法直言不讳。我真的很想了解并了解它,因为我只是在学习javascript / html。

我正在使用SVGInject将svg加载到我的html中,然后当我将它们悬停在svg元素上时,使用Tippy.js来获取有关我的svg元素的工具提示。

使用window.onload可以有时,但并非总是如此。错误是:

Uncaught TypeError: Cannot read property 'addEventListener' of null

重新加载页面导致错误消失并再次出现。

我将一个alert()放入onload只是为了查看发生了什么,有了警报,错误消失了,一切正常。我很困惑。

window.onload = function (){
   //alert("test"); //why does this alert make everything work??
   /* SVG HIGHLIGHTS */
   svg_highlight('ebk_abp','abk_ab');
   svg_highlight('ebk_pbp','pbk_ab');

   /* SVG TOOLTIPS */ 
   svg_tooltip('ebk', "Eröffnungsbilanzkonto");
};

[我意识到这与未按正确顺序加载内容有关,我根本不了解如何解决此问题以及为什么alert()修复了所有问题。

我不确定它是否允许发布此内容,但这是我的完整项目,因此您可以自己查看:

https://github.com/rackuzi/DieAbbildung | https://rackuzi.github.io/DieAbbildung/

javascript html http svg onload
1个回答
0
投票

svg元素尚不存在,因此您需要确保通过使用回调以正确的顺序执行代码。

您需要在svg注入的afterLoad属性中添加代码以添加工具提示。请参阅此页面上afterLoad的文档。 https://github.com/iconfu/svg-inject

© www.soinside.com 2019 - 2024. All rights reserved.