2016-02-12 75 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 +"')");