目前我正在开发一个网站,该网站旨在成为我的作品集,所以我希望它是一个挑战。
我展示我的作品的部分使用 PHP 编码并连接到数据库。使用 WHILE 循环,它会在我的网站上添加所有数据库记录。
对于这个网站,我决定第一次使用 Javascript,使其更具挑战性并学习这一点。
我想要的是 PHP WHILE 循环添加的每个数据库记录周围的边框,它仅在悬停时显示,并且每次悬停在缩略图上时都会更改颜色(固定的颜色数组)。
这是我到目前为止的代码:
function loaded() {
var colors = ["#FC3E6B","#24FF00","#0087F9","#F9F900"];
var images = document.getElementById("thumbnails").getElementsByTagName("div");
console.log(images);
for (var i = 0; i < images.length; i++) {
var rand = Math.floor(Math.random()*colors.length);
images[i].style.borderStyle = 'solid';
images[i].style.borderWidth = '1px';
images[i].style.borderColor = 'transparent';
$(images[i]).hover(function(){
console.log('hovering over');
images[i].style.borderColor = colors[rand];
}, function(){
console.log('hovering out');
images[i].style.borderColor = 'transparent';
});
};
};
我现在的问题是它不起作用或部分不起作用。此代码仅适用于 WHILE 循环添加的第一个条目。在控制台中,我可以看到“console.log(images)”只返回第一个条目。
另一个问题是它也返回一个错误:
images[i] is undefined
images[i].style.borderColor = colors[rand];
这是我目前正在努力解决的两件事。这很可能是初学者/容易犯的错误,因为这是我第一次使用 Javascript。
如果有什么我忘了提及或您需要知道的,请告诉我。我期待着回复。