我是javascript的新手,我真的需要一些帮助启动。这是一种情况。 我有一组超链接,显示点击图像。但我无法让它发挥作用。救命啊!
<td>
<asp:HyperLink ID="hyplnkcat" Text='<%#Eval("CategoryNameEn") %>' onclick="return MakeVisible(imgselect);" runat="server">HyperLink</asp:HyperLink>
<asp:Label ID = "countcat" Text='' runat ="server">countcat</asp:Label>
<asp:ImageButton ID="imgselect" runat ="server" Visible ="false" CommandArgument ='<%#Eval("CategoryNameEn") %>' ImageUrl="images/arrow_black.gif"/>
</td>
<td>
<asp:Literal ID = "litcat" text='<%#Eval("CategoryCode") %>' Visible ="false" runat ="server" ></asp:Literal>
</td>
.
.
.
<script type="text/javascript">
$("#hyplnkbrand").click(function MakeVisible(imgselect) {
$("#imgselect").show("slow", function() {
// Animation complete.
});
});
</script>
答案 0 :(得分:0)
如果检查控件的渲染版本(即在Firefox中使用Firebug来检查HTML),您会注意到.NET控件的ID不再存在(但ID看起来类似'ctl00_ctlxxx_hyplnkcat')
由于Javascript通过浏览器绑定到客户端,因此无法激活jQuery,因为对于Javascript,您的控件不再存在于此...
此问题有多种选择:
1.您可以使用类名而不是ID来绑定您的jQuery代码(您需要将每个类添加到每个.NET控件并将所有ID替换为jQuery中的类):
<asp:HyperLink CssClass="hyplnkcat" ID="hyplnkcat" Text='<%#Eval("CategoryNameEn") %>' onclick="return MakeVisible(imgselect);" runat="server">HyperLink</asp:HyperLink>
$(".hyplnkbrand").click(function MakeVisible(...));
2.依赖于您正在使用的.NET Framework,您可以使用“ClientId”属性为元素生成固定ID名称,而不是.NET Frameworks版本。这样,ID就像它们应该在客户端那样,你应该能够绑定jQuery动作。
提示:不要使用.NET生成的ID绑定您的jQuery操作,因为这是由.NET自动生成的,并且每当您在UI中更改内容时都可能会更改。
答案 1 :(得分:0)
我认为您会发现问题是因为您已将ImageButton
的Visiblity属性设置为false。
Visible ="false"
这将阻止它呈现给您的浏览器。
您需要做的是将style
的{{1}}设置为ImageButton
或display:none
,然后您就可以使用JS找到您的元素。
然后你可以做类似
的事情visibility:hidden