请各位高手指点下 从asp.net数据库中读取的图片,是用控件绑定显示的,后面写了js代码,只是第一张图有效果

<asp:DataListID="ListPhto"runat="server"RepeatColumns="4"><ItemTemplate><tableid="dem... <asp:DataList ID="ListPhto" runat="server" RepeatColumns="4">
<ItemTemplate>
<table id="demo">
<tr >
<td colspan="2">

<img onerror="this.src='../../Resource/Img/化妆造型/hz-45.jpg'"
src="../../Resource/Img/化妆造型/<%#Eval("PIndex")%>" height="150px" width="175px" />

</td>

</tr>
</table>
</ItemTemplate>
</asp:DataList>

<div id="enlarge_images"></div>
//这是控制图片放大的js
<script type="text/javascript" >
var demo = document.getElementById("demo");
var gg = demo.getElementsByTagName("img");
var ei = document.getElementById("enlarge_images");
for (i = 0; i <= gg.length; i++) {
var ts = gg[i];
ts.onmousemove = function(event) {
event = event || window.event;
ei.style.display = "block";
ei.innerHTML = '<img src="' + this.src + '" />';
ei.style.top = document.body.scrollTop + event.clientY + 10 + "px";
ei.style.left = document.body.scrollLeft + event.clientX + 10 + "px";
}
ts.onmouseout = function() {
ei.innerHTML = "";
ei.style.display = "none";
}
ts.onclick = function() {
window.open(this.src);
}
}

</script>
展开
 我来答
linman2010
2012-05-08 · TA获得超过302个赞
知道小有建树答主
回答量:525
采纳率:100%
帮助的人:273万
展开全部
js 放大图片的话,需要对每个图片有一个独立的id来。所以你的img 中需要添加id这个属情。这样函数才能识别是放大哪个图片! 而你这个是改变table的大小!
更多追问追答
追问
谢谢你的回答,我也试过了 ,在img  这也用了id=demo  了  但是还是那样,只是第一张图片放大,其他图片没反映
追答
lvyingtang 说的不错。
你可以这样试一下:用静态的方法来测,你就知道原理了。在静态的页面内设三张图片(三个表格也行)。每个图片的id 分别为demo1,demo2,demo3.那么就你调用一下js代码。这样你就应该可以实现效果了。所以,可以得出这样一个结论:如果要实现这个功能。那么用必须动态的为img或table标志动态分配id这样,js函数才能根据var demo=document.getElementById("img或table的id");获得独立的对象。而如你原来的原码的话。那么,我们的datolists中有就在若干个id为demo的table。而js脚本只得到第一个的,所以就只处理第一个的了。
编程算法很重要的!下面是我的写的html,换一下图片路径就可以了!

New Document

var gg = document.getElementsByTagName("img");
var ei = document.getElementById("enlarge_images");
for (i = 0; i ';
ei.style.top = document.body.scrollTop + event.clientY + 10 + "px";
ei.style.left = document.body.scrollLeft + event.clientX + 10 + "px";
}
ts.onmouseout = function() {
ei.innerHTML = "";
ei.style.display = "none";
}
ts.onclick = function() {
window.open(this.src);
}
}

lvyingtang
2012-05-08 · TA获得超过645个赞
知道小有建树答主
回答量:675
采纳率:100%
帮助的人:706万
展开全部
你的脚本获取对象出错了!
var demo=document.getElementById("demo");//获取表格 对吧
//但是你的页面里会有很多个id=demo的表格,每个表格里只有一个img
//因为在datalist控件中流动的是<table id="demo">…………</table>
//如果页面里存在相同id的元素的话,js的getElementById会只取第一个
//所以,你的脚本只得到第一个id=demo的table,当然也只能处理到这个表格里的img

如果我的分析不错的话,把demo向上推一推就应该没问题了!
如:
var demo=document.getElementById("demo").parentNode.parentNode.parentNode;
//获取表格的父元素的父元素的父元素(看需要了)
追问
嗯   谢谢     id=demo  应该放在哪     我试过  都没对, 如何让脚本对那些所有图片都有效果
追答
你用一个 id=demo  的div把datalist包含起来
然后不用修改js代码应该也是可以的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式