【发布时间】:2014-12-17 01:14:43
【问题描述】:
我有一个未排序的 HTML 图像列表。每个 Line (li) 元素都有自己的 id:
<ul id="Demo3">
<li id="li1"><img src="images/FT/HopkinsPrairie.jpg" /></li>
<li id="li2"><img src="images/FT/PineForest.jpg" /></li>
<li id="li3"><img src="images/FT/2011GroupThumb.jpg" /></li>
<li id="li4"><img src="images/FT/JuniperSpringsSwimming.jpg" /></li>
<li id="li5"><img src="images/FT/HappyHourThumb.jpg" /></li>
<li id="li6"><img src="images/FT/HappyHourThumb.jpg" /></li>
</ul>
当我点击每张图片时,我希望显示更大版本的图片,有点像这样:
<li id="li2"><a href="images/FT/PineForestBig.jpg" target="_blank"><img src="images/FT/PineForest.jpg" /></a></li>
不幸的是,与#Demo3 关联的 CSS 类对与所有 #li 元素关联的类进行了大量操作,因此我必须以编程方式添加锚点。
我尝试这样做:
i = 1;
while ($("#li" + i).length > 0) { // If the li id exists
myLink = "images/FT/Page" + i + ".jpg"; // create a link
var element = document.getElementById("li" + i); // get the element
element.onclick = function () { // create an onclick for this element
var win = window.open(myLink, '_blank');
win.focus();
}
i++;
}
这不起作用!无论出于何种原因,每个图像都会与列表中的最后一个图像获得相同的点击。
有谁知道我做错了什么或如何解决这个问题,以便每个 li 元素中包含的每个图像都有自己的点击?
还有其他建议吗?
【问题讨论】:
-
将您的 while 参数更改为
while ($("#Demo3 li").length > 0)有什么改变吗?对我来说,您似乎只是在循环浏览#li1 -
@Amadan 不,这个 jquery 问题有另一种方法。
-
此问题已关闭,如in this meta post解释的错误重复项@
标签: javascript jquery css events