2016-10-10 161 views
0

我试图让我的头绕着addEventListener()函数,并在本地主机安装上设置了一些代码,但是当我运行代码时我收到一条错误消息:Uncaught TypeError:section2 .addEventListener不是一个函数。addEventListener抛出错误

代码如下,基本上当section2加载(它将保存视频内容)时,我希望section1(其中包含预加载器)消失。为了便于代码,我使用jQuery作为变量。我已经使用console.log来测试这些变量是否显示在活动网站上,并且它们是。

var section1 = $("#section1"), 
    section2 = $("#section2"); 


section2.addEventListener("load", function(){ 

    section1.style.display="none"; 

}) 

我似乎无法弄清楚为什么它不起作用?

+2

'addEventListener'是'EventTarget'对象的函数,如'HTMLElement's,_not_ jQuery的对象。 – Xufox

+0

查看jQuery的[on()](http://api.jquery.com/on/):“将一个或多个事件的事件处理函数附加到所选元素。” – showdev

+0

谢谢。这已经停止了控制台中的错误,虽然第2节已经加载,但第1节实际上并没有消失? –

回答

2

像Xufox直接在你的帖子下说的,它不是一个对象,jQuery通过$('...')选择。

选项a)纯的Javascript:

var section1 = document.getElementById('section1'), 
    section2 = document.getElementById('section2'); 

选项B)的Jquery:

section2.on("load", function(){ 
    section1.hide(); 
}) 
+0

谢谢。这已经停止了控制台中的错误,虽然第2节已经加载,但第1节实际上并没有消失? –

+0

@EmilyChewy单独的问题。 'load'仅适用于某些类型的元素,如图像和iframe。你知道,装载东西的东西。 –

+0

哦,我明白了。对不起,我是JS新手。我必须去研究它的工作原理。这让我在如何做JS预加载器时感到有些不知所措。我想我需要将它添加到并在身体上运行负载或其他东西? –