【发布时间】:2018-03-25 03:18:08
【问题描述】:
我一直在构建一个包含数百张图片的图片库,我不希望它们都在页面加载时加载,因为明显的带宽问题。首先,我把;
<body onload="removeAttr("src")">
为了防止加载有效的图片......太好了,我担心它不会加载我的网站标题横幅图片。无论如何,我的画廊设置了一个菜单,每个按钮代表不同的图像。菜单以这种格式显示;
<ul id="menu">
<li><a href="#pic1">Title</a></li>
</ul>
有很多按钮。单击该按钮时,它将与其链接的图形加载到名为“画廊”的 div 中所有图像都加载到带有溢出的“画廊”中:隐藏这就是他们最初想要加载的原因,该代码显示为;
<div id="gallery">
<div>
<a name="pic1"></a><img alt="" src="../images/characters/character1.jpg" />
</div>
</div>
再次在其中包含许多图像。我的脚本监听鼠标点击并立即抓取 与它关联的 href 值,例如“pic1”,然后它使用它来查找与其链接的图像名称,例如“character1.jpg”,并将其存储在变量中。 (我坚信这是我的问题所在)。然后,它以“图库” div 为目标,删除之前在其中的所有图片,然后插入新图片(存储在变量中的图片)。所有这些都是为了尝试仅加载用户想要查看的图形而不是全部。该警报显示按钮编号,以便该部分起作用,并且我知道它会删除加载在 div 中的图像,因为它似乎正在加载列表中的第一个图像,然后在测试时消失,但它永远不会用新图像替换它.
<script type="text/javascript">
window.onclick = function(e) {
var node = e.target;
while (node != undefined && node.localName != 'a') {
node = node.parentNode;
}
if (node != undefined) {
if (this.id == 'alternate-image') {
var Imgsrc = $(this).find('img').attr('src');
alert(src);
}
var dv = document.getElementById('gallery');
// remove all child nodes
while (dv.hasChildNodes()) {
dv.removeChild(dv.lastChild);
}
alert("The button value is: " + node);
var img = document.createElement("IMG");
img.src = Imgsrc;
dv.appendChild(img);
return false; // stop handling the click
} else {
alert('This is not a link: ' + e.target.innerHTML)
return true; // handle other clicks
}
}
</script>
【问题讨论】:
-
您是在提高您的编程技能还是在尝试实现一个项目?有关照片库示例项目,请参阅 here。
-
试试 var Imgsrc= $(this).find('img')[0].attr('src');
标签: javascript href src image-gallery imagesource