2014-03-06 42 views
0

我是JavaScript的全新,我有一些問題。asp.net和JavaScript的請指教

我的任務是創造出我有一些困難鼠標懸停和鼠標移開腳本,

我的aspx代碼

<div> 
    <div id="div_img" style="height: 300px; width: 300px; border: solid 1px black; position: absolute; 
      visibility: hidden;"> 
     <img src="" id="img_tool" /> 
    </div> 
</div> 

<script type="text/javascript" language="javascript"> 

     function ShowToolTip(con) { 
     console.log(getOffset(con).left + '-' + getOffset(con).top); 
      document.getElementById("div_img").style.visibility = "visible"; 
      document.getElementById("img_tool").src = con.src; 
      document.getElementById("div_img").style.left = getOffset(con).left - 300 + 'px'; 
      document.getElementById("div_img").style.top = getOffset(con).top - 300 + 'px'; 
      document.getElementById("div_img").style.zIndex = "0"; 
      console.log(document.getElementById("div_img").style.left +'-'+document.getElementById("div_img").style.top) 
     } 
     function hideToolTip() { 
      document.getElementById("div_img").style.visibility = "hidden"; 
     } 

     function getOffset(el) { 
      var _x = 0; 
      var _y = 0; 
      while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { 
       _x += el.offsetLeft - el.scrollLeft; 
       _y += el.offsetTop - el.scrollTop; 
       el = el.offsetParent; 
      } 
      return { top: _y, left: _x }; 
     } 

</script> 

和後面的C#我的代碼是

if ((e.Row.RowType.ToString() != "Header") && (e.Row.RowType.ToString() != "Footer")) 
{ 
     ImageButton ib = (ImageButton)e.Row.Cells[3].Controls[0]; 
     ib.Attributes.Add("onmouseover", "ShowToolTip(this);"); 
     ib.Attributes.Add("onmouseout", "hideToolTip();"); 

我不知道下一個是什麼..請幫助

+3

你的問題是什麼? – Plue

+0

下一步是研究如何從html/asp.net中調用js –

+0

您的瀏覽器控制檯中是否有任何錯誤? '功能「ShowToolTip」 undefined'或類似 – alexP

回答

0

嘗試這樣的事情

if ((e.Row.RowType.ToString() != "Header") && (e.Row.RowType.ToString() != "Footer")) 
    { 
    ImageButton ib = (ImageButton)e.Row.Cells[3].Controls[0]; 
    ib.Attributes.Add("onmouseover", string.Format("ShowToolTip('{0}');", ib.ClientId)); 
    ib.Attributes.Add("onmouseout", string.Format("hideToolTip('{0}');", ib.ClientId)); 
    } 


    <script type="text/javascript" language="javascript"> 

    function ShowToolTip(con) { 
    var element = document.getElementById(con); 
    console.log(getOffset(con).left + '-' + getOffset(con).top); 
    document.getElementById("div_img").style.visibility = "visible"; 
    document.getElementById("img_tool").src = element.src; 
    document.getElementById("div_img").style.left = getOffset(con).left - 300 + 'px'; 
    document.getElementById("div_img").style.top = getOffset(con).top - 300 + 'px'; 
    document.getElementById("div_img").style.zIndex = "0"; 
    console.log(document.getElementById("div_img").style.left + '-' + document.getElementById("div_img").style.top) 
    } 
    function hideToolTip() { 
    document.getElementById("div_img").style.visibility = "hidden"; 
    } 

    function getOffset(el) { 
    var _x = 0; 
    var _y = 0; 
    var element = document.getElementById(el); 
    while (element && !isNaN(element.offsetLeft) && !isNaN(element.offsetTop)) { 
     _x += element.offsetLeft - element.scrollLeft; 
     _y += element.offsetTop - element.scrollTop; 
     element = element.offsetParent; 
    } 
    return { top: _y, left: _x }; 
    } 

</script> 
1

您可以直接在ASPX這些事件添加到img_tool

<img src="" id="img_tool" onmouseover="ShowToolTip(this);" onmouseout="hideToolTip();" /> 

另外,如果你想在代碼中訪問控制(Web控件或HTML元素)的後面,你必須添加屬性runat="server"

<img src="" id="img_tool" runat="server"/>