如果我有以下这样的HTML代码:
有没有办法将
<a href="#" class="movieImg"><div class="previewBulk"></div></a>
<a href="#" class="movieImg"><div class="previewBulk"></div></a>
以及像这样的JavaScript:
var movie = document.getElementsByClassName("movieImg");
var preview = document.getElementsByClassName("preview");
有没有办法将
addEventListener
添加到 2 个电影的 a 标签和预览 div 标签中?我尝试使用 for 循环,但当我进行如下操作时:for(var i = 0, j=movie.length; i<j; i++){
movie[i].style.left = 100;
preview[i].style.left = 100;
}
我遇到了 Uncaught TypeError: Cannot read property 'style' of undefined
的错误。
将预览更改为批量预览后,我仍然遇到错误,我的代码实际上是这样的:
(function(){
var movie = document.getElementsByClassName("movieImg"),
preview = document.getElementsByClassName("previewBulk");
//result = [];
for(var i = 0, j=movie.length; i<j; i++){
movie[i].addEventListener("mouseover", function(){
preview[i].style.left = ((movie[i].offsetWidth-preview[i].offsetWidth)/2)+20;
preview[i].style.top = -(movie[i].offsetHeight+preview[i].offsetHeight);
preview[i].style.visibility = "visible";
});
movie[i].addEventListener("mouseout", function(){
preview[i].style.visibility = "hidden";
});
}
}());
left
属性(如您所示通过DOM访问)需要一个长度而不是整数。除非值为0,否则需要单位。 - Quentin