【发布时间】:2018-01-08 13:28:49
【问题描述】:
我正在尝试构建简单的 javascript/jquery 库。我想这是一个非常具体的问题。
逻辑如下:使 div 与数组包含的元素一样多(var sum)。这些元素呈现图像名称。我意识到在第一个 for 循环中(第一个 append 函数添加图像,第二个添加名称列表 - 在图像之间导航)。在第二个 for 循环中,我设置了初始值(给我看第一张图片),它可以工作。
我在尝试将功能分配给名称列表中的单击元素时遇到了障碍。第三个 for 循环显然有效(因为它是第二个的副本)。 有语法错误吗?
代码:
<div id="container"> //contains images
</div>
<div id="list"> //contains navigation numbers
</div>
<script>
var array = ['0', '1', '2']; //img names
var sum = array.length;
var currentId = 'a' + array[1];
$(document).ready(function () {
for (var i = 0; i < sum; i++) {
$("#container").append("<img class='a' src='img/" + array[i] + ".jpg' id='a" + array[i] + "'>");
$("#list").append("<a href='#a" + array[i] + "' onclick='checkButton()'>" + array[i] + "</a><br />");
}
for (var i = 0; i < sum; i++) {
var inactiveId = 'a' + array[i];
if (currentId !== inactiveId) {
document.getElementById(inactiveId).style.display = "none";
}
}
currentId1 = this.id;
$(currentId1).click(function () {
document.getElementById(currentId1).style.display = "block";
for (var i = 0; i < sum; i++) {
var inactiveId = 'a' + [i];
if (inactiveId !== currentId1) {
document.getElementById(inactiveId).style.display = "none";
}
}
})
});
</script>
【问题讨论】:
标签: javascript jquery this photo-gallery