我在aspx页面中有一个html图像标签。单击该图像时,将执行某些jQuery功能。最近,我将属性添加到图像,因为我想基于某些验证来更改图像的来源。但是问题是我不理解为什么当我单击图像时,当没有属性时,它通常可以很好地工作时,为什么不调用jQuery函数。我查看了网络上所有可能的解决方案,并进行了尝试,但没有一个起作用。
请找到以下代码,并让我知道可以做些什么。
ASPX页面:jQuery函数和图像标记代码:
<script type="text/javascript" src="<%= ResolveUrl("~/Common/Scripts/jquery-1.9.1")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Common/Scripts/jquery-ui-1.10.3.custom.min")%>"></script>
$(document).ready(function () {
//doing something
$("#imgseats").click(function () {
// doing something
});
});
</script>
<ul id="list">
<li id="listSeats" runat="server">
<img id="imgseats" class="HeaderGradient" src="../../Common/Images/seatsPCPI.jpg" alt="Seats" runat="server" />
//some code here
</li>
</ul>
aspx.cs后面的代码
if(condition)
{
imgseats.Attributes["src"] = "../../Common/Images/seatsPCPI_MandatoryPI.jpg";
}
请帮助我解决此问题。预先感谢。
答案 0 :(得分:0)
检查为图像生成的“ UniqueID”。 ASP.NET将元素runat = server的ID更改为“ ctl00_imgseats”之类的内容。根据DOM的深度,它可能是一个很长的ID。
或将jQuery选择器更改为类:例如,$('img.HeaderGradient')。您也可以使用虚拟的CSS类。
答案 1 :(得分:0)
要访问jquery中的runnat =“ server”的任何控件,您需要通过其唯一ID(即$('#<%= imgseats.ClickID%>')而不是$(“#imgseats”))来访问它们。 / p>
$(document).ready(function(){ //做某事
$('#<%=imgseats.ClientID%>').click(function () {
// doing something
});
});