如何检索与其父项
    相关的列表项 sx,y 坐标

发布于 2024-10-28 00:53:11 字数 641 浏览 2 评论 0原文

理想情况下,我希望有一个这样的列表:

<ul class="parent" id="app1">
  <li><a href="#">Item 1</a>
    <ul class="child">
      <li><a href="#">Sub Item 1 - 1</a></li>
    </ul>
  </li>
  <li><a href="#">Item 2</a></li>
</ul>

我需要知道单击后

  • 的 x,y 坐标。
  • $('.parent > li').click( function() {
    
      var x = $(this)...  // x coordinate
      var y = $(this)...  // y coordinate
      var sub_y = y + $(this).height();
      var sub_x = x; // want x to be 0 (left side of ul.parent)
    
    });
    

    Ideally I would like to have a list like this:

    <ul class="parent" id="app1">
      <li><a href="#">Item 1</a>
        <ul class="child">
          <li><a href="#">Sub Item 1 - 1</a></li>
        </ul>
      </li>
      <li><a href="#">Item 2</a></li>
    </ul>
    

    I need to know the x,y coordinate of the <li> after its clicked.

    $('.parent > li').click( function() {
    
      var x = $(this)...  // x coordinate
      var y = $(this)...  // y coordinate
      var sub_y = y + $(this).height();
      var sub_x = x; // want x to be 0 (left side of ul.parent)
    
    });
    

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(5

    心头的小情儿 2024-11-04 00:53:11

    查看演示->

    使用 .position()

    $('.parent > li').click( function() {
      var pos = $(this).position();
      var x = pos.left;  // x coordinate
      var y = pos.top;  // y coordinate
      var sub_y = y + $(this).height();
      var sub_x = x; // want x to be 0 (left side of ul.parent)
      alert(x + ', ' + y);
    });
    

    这将允许您可以获得计算出的元素的顶部和左侧位置。

    See the demo->

    Use .position():

    $('.parent > li').click( function() {
      var pos = $(this).position();
      var x = pos.left;  // x coordinate
      var y = pos.top;  // y coordinate
      var sub_y = y + $(this).height();
      var sub_x = x; // want x to be 0 (left side of ul.parent)
      alert(x + ', ' + y);
    });
    

    This will allow you to get the computed top and left position of the element.

    活泼老夫 2024-11-04 00:53:11
    $('.parent > li').click( function() {
        var x = $(this).offset().left;  // x coordinate
        var y = $(this).offset().top;  // y coordinate
    
        var px = $(this).parent().offset().left;
        var py = $(this).parent().offset().top;
    
        var rel_x = x - px;
        var rel_y = y - py;
    });
    

    在 JSFiddle

    $('.parent > li').click( function() {
        var x = $(this).offset().left;  // x coordinate
        var y = $(this).offset().top;  // y coordinate
    
        var px = $(this).parent().offset().left;
        var py = $(this).parent().offset().top;
    
        var rel_x = x - px;
        var rel_y = y - py;
    });
    

    On JSFiddle

    荒岛晴空 2024-11-04 00:53:11

    使用 jQuery postion() 方法。

    Use the jQuery postion() method.

    太阳公公是暖光 2024-11-04 00:53:11
      var x = $(this).offset().left;
      var y = $(this).offset().top;
    
      var x = $(this).offset().left;
      var y = $(this).offset().top;
    
    ゛清羽墨安 2024-11-04 00:53:11

    您只需调用 position 即可获取元素相对于其父元素的位置。

    You just need to call position to get the position of an element, relative to its parent.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文