在c#代码后面添加mouseover属性

时间:2016-02-12 16:18:14

标签: javascript c# asp.net

我正在使用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" />

3 个答案:

答案 0 :(得分:3)

这里有两件事:

  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 +"')"
    
  3. 此外,我不太确定visible = true;代表什么。据我所知,DOM对象中没有这样的属性。你的意思是document.getElementById(name).style.visibility = "visible"吗?

答案 1 :(得分:0)

  

当用户将鼠标放在text1上时,会出现text2;   以下是我目前所拥有的。

Html title 属性用于此目的。

试试这个:

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

答案 2 :(得分:0)

希望您正在寻找:

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