此代码出现以下错误。
我正在使用转发器来显示图像。图片ID是img .in jquery我使用$("#<%=img.ClientID %>")
获取图片。但它的给出错误,如img在当前的上下文中并不存在。转发器ID为rptRepeater
。
我怎么解决这个问题 ? $("#<%=img.ClientID %>") doesnot exists in current context
.NET代码
<asp:Repeater ID="RepeaterView" runat="server">
<ItemTemplate>
<a onmouseout="SelectEnd()" onmouseover='<%#Eval("Coords","preview(\"{0}\");")%>'>
<asp:Image ID="ImageZoom" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %> ' Height="150" Width="150" >
</asp:Image>
</a>
</ItemTemplate>
</asp:Repeater>
JavaScript代码
<script type="text/javascript">
function preview(Coords) {
var arrResult = Coords.split(",");
var nx1 = arrResult[0];
var ny1 = arrResult[1];
var nx2 = arrResult[2];
var ny2 = arrResult[3];
var ias = $("#<%=ImageZoom.ClientID %>").imgAreaSelect({ instance: true });
ias.setSelection(nx1, ny1, nx2, ny2, true); ias.setOptions({ show: true });
ias.update();
}
</script>
答案 0 :(得分:0)
你遇到的问题是没有一个id,你正在向页面添加多个元素,因此该代码不可能处理所有元素。你需要使它更通用。
尝试将代码更改为不需要ID的代码。
.NET代码
<asp:Repeater ID="RepeaterView" runat="server">
<ItemTemplate>
<a onmouseout="SelectEnd()" onmouseover='<%#Eval("Coords","preview(this, \"{0}\");")%>'>
<asp:Image ID="ImageZoom" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %> ' Height="150" Width="150" >
</asp:Image>
</a>
</ItemTemplate>
</asp:Repeater>
JavaScript代码
<script type="text/javascript">
function preview(elem, Coords) {
var arrResult = Coords.split(",");
var nx1 = arrResult[0];
var ny1 = arrResult[1];
var nx2 = arrResult[2];
var ny2 = arrResult[3];
var ias = $(elem).find("img").imgAreaSelect({ instance: true });
ias.setSelection(nx1, ny1, nx2, ny2, true); ias.setOptions({ show: true });
ias.update();
}
</script>