2016-02-12 129 views
1

我使用的是ASP.NET,并且在后面的代码中,我需要添加一个属性,当用户将鼠标放在text1上时,会使text2显示;以下是我目前拥有的。在c#代码中添加mouseover属性

JS:

function show(name) { 
     document.getElementById(name).visible = true; 
    } 

C#:这里

<asp:HyperLink runat="server" ID="text2" Visible="false"/> 
<asp:HyperLink runat="server" ID="text1" rel="external" /> 
+0

有你面对任何错误? – CodeIt

+0

请确保您不会将asp.net服务器属性与'css'属性混淆。 'visibility = true'是一个asp.net服务器属性,它在页面呈现前解析。 javascript不知道这些属性 –

回答

3

两件事情:

text2.Attributes.Add("onmouseover", "show(" + text2.ClientID +")"); 

HTML

  1. Visible="false"不是造型,它是服务器端属性。将它设置为false意味着控件将不会被渲染。所以它甚至不会存在于客户端,当然也没有办法通过javascript访问它。请考虑为其分配一个CSS类,或者至少是内联样式,如style="visibility: hidden"

  2. 您想要将控件的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"

+0

像'style =“visible:false”'的内联样式是错误的。你必须使用“display:none;”或“可见度:隐藏”。第二个将离开占位符,因为它是。 – Ravimallya

+1

@Ravimallya,良好的捕获,修改为“知名度:隐藏” – Andrei

+0

也注意到他的JavaScript需要修改为...'document.getElementById(name).style.visibility ='visible';'... –

0

当用户将鼠标放在text1上时,会显示text2;下面是我目前拥有的 。

Html 标题属性用于此目的。

试试这个:

text2.Attributes.Add("title", text2.ClientID); 
0

希望您正在寻找这样的:

text2.Attributes.Add("onmouseover", "show('" + text2.ClientID +"')");