我正在使用下面的javascript在asp.net c#
中更改aspx上的图像<script language="JavaScript" type="text/javascript">
var updateImageWhenHashChanges = function()
{
theImage = document.getElementById("ctl00_ContentPlaceHolder1_Image1a");
if(window.location.hash == "#size=2")
{
theImage.src = "<%# Eval("realfilename", "/files/l{0}") %>";
}
else if(window.location.hash == "#size=3")
{
theImage.src = "<%# Eval("realfilename", "/files/{0}") %>";
}
else if(window.location.hash == "#size=1")
{
theImage.src = "<%# Eval("fullthumbname", "/thumbnails/{0}") %>";
}
else
{
}
}
</script>
这是我用链接调用它的方式
<a href="#size=3" onclick="updateImageWhenHashChanges();">test</a>
问题是它只能做我在第二次点击链接时所期待的,因为它似乎在href之前点击了火,所以我第一次放置var而第二次我是实际上得到我想要的东西。
有谁知道我怎么解决这个问题?我试图在每次点击时改变图像
答案 0 :(得分:3)
也许你可以用javascript:void(0)
替换你的href,然后在onclick()脚本的末尾处理链接的“自然”点击行为。
答案 1 :(得分:0)
您是否尝试过像onmouseup或onunload这样的其他活动?
答案 2 :(得分:0)
您应该将当前锚点的href传递给函数调用,然后在if语句中使用它,然后返回false以便不使用默认行为。
var updateImageWhenHashChanges = function(pChoice)
{
theImage = document.getElementById("ctl00_ContentPlaceHolder1_Image1a");
if(pChoice == "size2")
{
// more lines of picking and choosing... and finally:
return false;
然后在锚点
<a href="size2" onclick="return updateImageWhenHashChanges(this.href);">test</a>
如果您可以使用数据绑定将图像的真实href放入锚点的href中,那么如果没有启用JavaScript,用户仍然可以最终看到图像题。然后你的功能代码只是获取图像的句柄并将源设置为入站参数。
答案 3 :(得分:0)
这样的事情:
<script type="text/javascript">
var updateImageSize = function(imageType, imageID)
{
thisImage = document.getElementById(imageID);
switch(imageType)
{
case "thumb":
// change image src to the thumbnail's path
thisImage.src = "YourThumbNailPath";
case "medium":
// change image src to medium image path
thisImage.src = "YourMediumImagePath";
case "large":
// you get the picture
thisImage.src = "YourLargeImagePath";
default:
// whatever you want it to default to
thisImage.src = "YourThumbNailPath";
}
}
</script>
然后执行:
<a href="javascript:void(0);" onclick="updateImageSize('thumb','tl00_ContentPlaceHolder1_Image1a');">Update Image</a>
希望有所帮助。