我正在尝试使用jQuery更新图像的来源。问题是img正在运行服务器端,因为它的初始源是在加载时设置的。
这是ASPX / HTML:
<h2><asp:Label ID="lblTitle" runat="server" /></h2>
<img id="largeImg" runat="server" width="320" alt="Large Image" />
<p class="thumbs">
<a id="imgBACK" runat="server" title="Back"><img id="imgBACK_Thumb" runat="server" /></a>
<a id="imgFRONT" runat="server" title="Front"><img id="imgFRONT_Thumb" runat="server" /></a>
<a id="imgINSIDELEFT" runat="server" title="Inside Left"><img id="imgINSIDELEFT_Thumb" runat="server" /></a>
<a id="imgINSIDERIGHT" runat="server" title="Inside Right"><img id="imgINSIDERIGHT_Thumb" runat="server" /></a>
</p>
可以找到正在使用的示例jQuery代码here或更低版本:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Image Replacement</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("h2").append('<em></em>')
$(".thumbs a").click(function(){
var largePath = $(this).attr("href");
var largeAlt = $(this).attr("title");
$("#largeImg").attr({ src: largePath, alt: largeAlt });
$("h2 em").html(" (" + largeAlt + ")"); return false;
});
});
</script>
<style type="text/css">
body {
margin: 20px auto;
padding: 0;
width: 580px;
font: 75%/120% Arial, Helvetica, sans-serif;
}
h2 {
font: bold 190%/100% Arial, Helvetica, sans-serif;
margin: 0 0 .2em;
}
h2 em {
font: normal 80%/100% Arial, Helvetica, sans-serif;
color: #999999;
}
#largeImg {
border: solid 1px #ccc;
width: 550px;
height: 400px;
padding: 5px;
}
.thumbs img {
border: solid 1px #ccc;
width: 100px;
height: 100px;
padding: 4px;
}
.thumbs img:hover {
border-color: #FF9900;
}
</style>
</head>
<body>
<h2>Illustrations</h2>
<p><img id="largeImg" src="images/img1-lg.jpg" alt="Large image" /></p>
<p class="thumbs">
<a href="images/img2-lg.jpg" title="Image 2"><img src="images/img2-thumb.jpg" /></a>
<a href="images/img3-lg.jpg" title="Image 3"><img src="images/img3-thumb.jpg" /></a>
<a href="images/img4-lg.jpg" title="Image 4"><img src="images/img4-thumb.jpg" /></a>
<a href="images/img5-lg.jpg" title="Image 5"><img src="images/img5-thumb.jpg" /></a>
<a href="images/img6-lg.jpg" title="Image 6"><img src="images/img6-thumb.jpg" /></a>
</p>
</body>
</html>
目前,所有图像源在加载时都是完美的(通过代码隐藏加载小图像和大图像)。但是,单击缩略图不会更改大图像,因为它正在运行服务器端。
有关如何解决此问题的任何想法?
非常感谢您提前!在我的头撞到墙上太多时间后,我终于扔掉了毛巾(至少几个小时)。
谢谢!
- 亚当
答案 0 :(得分:2)
这应该有效,除了两点:
src
,但不希望在回发后在服务器端看到它。图片未发布,仅发布输入字段。您的img
是runat="server"
- 这意味着页面上的id
更改(除非它位于根级别,例如,没有母版页,面板,中继器等)。你需要使用
$('#<%=largeImg.ClientID%>')
哪个非常难看,或者只是添加一个类并在选择器中使用它:
<img id="largeImg" runat="server" width="320" alt="Large Image"
CssClass="LargeImage" />
$(".LargeImage").attr({ src: largePath, alt: largeAlt });