在 C# 代码隐藏中添加鼠标悬停属性
本文关键字:鼠标 悬停 属性 添加 代码 隐藏 | 更新日期: 2023-09-27 18:34:19
我正在使用 ASP.NET,在后面的代码中,我需要添加一个属性,当用户将鼠标放在text1上时,该属性使text2出现;以下是我目前拥有的。
.JS:
function show(name) {
document.getElementById(name).visible = true;
}
C#:
text2.Attributes.Add("onmouseover", "show(" + text2.ClientID +")");
.HTML:
<asp:HyperLink runat="server" ID="text2" Visible="false"/>
<asp:HyperLink runat="server" ID="text1" rel="external" />
这里有两件事:
-
Visible="false"
不是样式,而是服务器端属性。将其设置为 false 意味着根本不会呈现控件。所以它甚至不会存在于客户端,当然也没有办法通过javascript访问它。相反,请考虑为其分配一个CSS
类,或者至少像style="visibility: hidden"
这样的内联样式 -
您希望将控件的
id
包装成引号。假设你的控件最终以 id "blah_blah_text2"结束,你的 javascript 将看起来像show(blah_blah_text2);
所以JS会尝试将"blah_blah_text2"作为一个变量进行评估,当然会失败。相反,你想要
show('blah_blah_text2');
所以
"show('" + text2.ClientID +"')"
我也不太确定visible = true;
代表什么。据我所知,DOM 对象中没有这样的属性。你的意思是document.getElementById(name).style.visibility = "visible"
吗?
当用户将鼠标放在文本 1 上时,它使文本 2 出现; 以下是我目前拥有的。
Html title 属性用于此目的。
试试这个:
text2.Attributes.Add("title", text2.ClientID);
希望您正在寻找这个:
text2.Attributes.Add("onmouseover", "show('" + text2.ClientID +"')");