我真的不知道为什么这个不起作用。如果我把脚本放在头部,我的HTML中,在控制台中会出现以下错误:
Uncaught TypeError: Cannot read property 'addEventListener' of null
如果我将我的脚本放在页面底部,它能够正常工作。
HTML代码如下:
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="script.js"> </script>
</head>
<body>
<ul>
<li><a href="#" data-img="img1" id="img1"> Shahin </a></li>
<li><a href="#" data-img="img2" id="img2"> Lina </a></li>
<li><a href="#" data-img="img3" id="img3"> Adrita </a></li>
</ul>
<img src="./img/1.jpg" class="hidden">
<img src="./img/2.png" class="hidden">
<img src="./img/3.jpg" class="hidden">
</body>
JavaScript:
var shahin = document.getElementById('img1');
var lina = document.getElementById('img2');
var adrita = document.getElementById("img3");
shahin.addEventListener('click',picShow);
lina.addEventListener('click',picShow);
adrita.addEventListener('click',picShow);
function picShow() {
console.log(this);
}
请问有人能告诉我我做错了什么,以及脚本标签应该放在哪个位置?还有,我应该做出哪些更改才能从头部运行我的脚本?期待您的回答。谢谢。
onload
或 ready 包装器中,或将其移动到 HTML 下方。 - Andy$(document).ready()
中,因为当你添加处理程序时,你的页面主体还没有被渲染。 - jdubjdub