日期:2014-05-17  浏览次数:21520 次

repeater控件中层id被重复,导致javascript无预期效果(高手看看)
功能是实现,aspx页的类别显示,分大类和小类,鼠标经过大类时才弹出对应大类的小类层。
问题:原静态页可以实现以上功能,但改为aspx页后,鼠标悬浮哪个大类都弹出第一个层,原因是onmouseover="ss()" 
和 <span id="tt">都被重复显示了,尔原静态页是不重复的,ss1()对应id=tt1,ss2()对应id=tt2
请问如何解决这一问题??
以下是页面代码:
<div id="Body_stu">
  <div id="Body_stuN">
  <asp:Repeater ID="bigtypelist" runat="server" 
  onitemdatabound="bigtypelist_ItemDataBound">
   
  <ItemTemplate>
  <ul>
  <li class="div" onmouseover="ss()" onmouseout="dd()"><%--这个位置的javascript将被重复所以弹出的层id=tt的,重复后所有曾都叫tt--%>
  <div id="stuN_tu">
  </div>
  <div id="stuN_1">
  <a href="Article.aspx?search=<%#Eval("id") %>"><%#Eval("name") %></a>
  <img src="../images/icon_2.gif" width="22" height="20" border="0" align="absmiddle" />
  <span id="tt">
  <div id="Tan_kuang">
  <img src="../images/list2_1.gif" border="0" /></div>
  <div id="Tan_you">
  <div id="TK_on">
  <img src="../images/list2_2.gif" border="0" /></div>
  <div id="TK_center">
  <ul>
  <asp:Repeater ID="smalltypelist" runat="server">
   
  <ItemTemplate>
  <li><a href="Article.aspx?search=<%#Eval("id") %>" target="_blank"><%#Eval("name") %></a></li>
  </ItemTemplate></asp:Repeater>
  <li><a href="Article.aspx" target="_blank"><font color="#CC0000">更多...</font></a></li>  
   
  </ul>
  </div>
  <div id="TK_down">
  <img src="../images/list2_4.gif" border="0" /></div>
  </div>
  </span>
  </div>
  </li>
  </ul>
  </ItemTemplate>
  </asp:Repeater>
 
  </div>
  </div>

------解决方案--------------------
ss()类似这种函数把对应的ID传过去,也就是ss('<%#Eval("id") %>');

function ss(id){
//做你要做的事情
}