LinkButton2.Attributes.Add("onclick", "document.getElementById('ab').style.display='';document.getElementById('ab').style.left=window.event.clientX+15;document.getElementById('ab').style.top=window.event.clientY;return false;");以上代码中 ab是个DIV 
在普通页面中点LinkButton2,ab就会出现在 LinkButton2的下方,我的母版页样式为分上下两部分。 
我在把着个普通页面放在 母版页里后  问题就出现了。
点LinkButton2后,ab出现在页面中 左右位置没问题, 但是上下位置出了问题!!
反复实验得出结论和母版页有关!好象是获取不到window.event.clientY 值怎么解决啊?

解决方案 »

  1.   

    你试试 event.screenX  event.screenY
    能左右 为什么不能上下???给 document.getElementById('ab').style.top=window.event.clientY
    加个值看看`~ 和document.getElementById('ab').style.top=window.event.clientX+15一样
      

  2.   

    你alert出window.event.clientY 的值,看看是否正确,不正确的话你算出偏移的值,自己调整下
      

  3.   

    LinkButton2 是在哪个页面的`~?报了什么错~?alert能取到值的话~ 就没问题
      

  4.   

    不会呀? 偶试了,正常需要看看楼主的MasterPage和页面的HTML
      

  5.   

    怎么打印啊???比如我点LinkButton2 就打出 X,Y坐标~~
    alert(???????)不会写`~
      

  6.   

    好象跟偏移没什么关系!我发现个问题, 我的页面很长!! 当我把滚动条向下拉一点的时候。 这个DIV 就会向上一点~~~~
      

  7.   

    我发现 ALERT弹出的Y坐标 会随着IE 的滚动条上下移动而改变~~~~~~~~~~~~
    怎么解决啊~~
      

  8.   

    loveajax说的有道理。具体怎么弄啊~~怎么没人来啊
      

  9.   

    document.getElementById('ab').style.top=window.event.clientY + document.body.scrollTop;
      

  10.   

    另外注意doctypehttp://blog.csdn.net/net_lover/archive/2006/08/25/1116488.aspx
      

  11.   

    孟子哥哥的方案 没有效果啊~~~ ab还是不能在LinkButton2的下方显示~~
      

  12.   

    <div style="position:absolute"了么?
      

  13.   

    加了~~~
    要不换个方式来问~~
    我就想不管网页有多长多宽 我点LinkButton的时候  ab就要出现在它的下方
      

  14.   

    是可以的。虽然不是模板页,道理一羊<%@ Page Language="C#" AutoEventWireup="true"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Page_Load( object sender, EventArgs e )
      {
        LinkButton2.Attributes.Add("onclick", "document.getElementById('ab').style.display='';document.getElementById('ab').style.left=window.event.clientX+15;document.getElementById('ab').style.top=window.event.clientY+document.documentElement.scrollTop;return false;");  }
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title>无标题页</title>
    </head>
    <body>
      <form id="form1" runat="server">
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa<asp:LinkButton ID="LinkButton1" runat="server">LinkButton1</asp:LinkButton></p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>  <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa<asp:LinkButton ID="LinkButton2" runat="server">LinkButton2</asp:LinkButton></p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
        <p>
          aaa</p>
          <div id="ab" style="position:absolute;left:0;top:0;background: red">策划i</div>
      </form>
    </body>
    </html>
      

  15.   

    http://blog.csdn.net/net_lover/archive/2006/08/25/1116488.aspx
    文章的讲解很关键,不知道你仔细看了,没有
      

  16.   

    问题好象是这样的~~ 比如说 在IE滚动条下拉后  点LinkButton的时候 获取的值是20
    但是DIV好象是把 这个20当成是IE滚动条没有下拉时的值20的地方
      

  17.   

    你把我的代码拷贝,存为a.aspx,执行。看看
    怎么会不行
      

  18.   

    忘了说明了~~我的LinkButton2是在 DATALIST模板列里。不知道会不会有关系
      

  19.   

    这是js的问题。只要你客户端生成了代码就可以模版里面可以直接加写LinkButton2.Attr..??
    使用FindControl
      

  20.   

    数据绑定事件里使用
    LinkButton x = (LinkButton)e.Item.FindControl("LinkButton2");
    x.Attributes.Add("onclick", ...
    你需要补补基础知识了
      

  21.   

    应该这样!
    +document.documentElement.scrollTop
      

  22.   

    我上面写的LinkButton2.Attributes.Add("onclick", "document.getElementById('ab').style.display='';document.getElementById('ab').style.left=window.event.clientX+15;document.getElementById('ab').style.top=window.event.clientY;return false;");
    就是在DataList1_ItemDataBound中写的~~~document.getElementById('ab').style.top=window.event.clientY + document.body.scrollTop;换成 
    document.getElementById('ab').style.top=window.event.clientY +document.documentElement.scrollTop
    就好了~
      

  23.   

    OK 感谢 孟子哥的帮助和 loveajax的提醒~
      

  24.   

    原来用你回复的:
    document.getElementById('ab').style.top=window.event.clientY + document.body.scrollTop;
    效果还是一样!后用了:document.getElementById('ab').style.top=window.event.clientY +document.documentElement.scrollTop
    就OK了。总算解决了~
      

  25.   

    http://blog.csdn.net/net_lover/archive/2006/08/25/1116488.aspx
    告诉你什么时候用
    document.documentElement.scrollTop
    什么时候用
    document.body.scrollTop
      

  26.   

    是可以的。虽然不是模板页,道理一羊<%@ Page Language="C#" AutoEventWireup="true"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Page_Load( object sender, EventArgs e )
      {
        LinkButton2.Attributes.Add("onclick", "document.getElementById('ab').style.display='';document.getElementById('ab').style.left=window.event.clientX+15;document.getElementById('ab').style.top=window.event.clientY+document.documentElement.scrollTop;return 
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      

  27.   

    http://blog.csdn.net/net_lover/archive/2006/08/25/1116488.aspx
    告诉你什么时候用
    document.documentElement.scrollTop
    什么时候用
    document.body.scrollTop
    ----------------------
     有得学,就看看去
      

  28.   

    return false; 还是会提交??net_lover(【孟子E章】)