当前位置:  开发笔记 > 编程语言 > 正文

使用jquery获取在链接图像上单击的准确位置

如何解决《使用jquery获取在链接图像上单击的准确位置》经验,为你挑选了1个好方法。

我正在开发一个应用程序,允许通过点击直接标记照片(如Facebook,flickr等).但是,我似乎无法为照片上的点击注册正确的坐标.问题是x坐标似乎是浏览器窗口内(而不是照片内)点击的绝对x距离,而y坐标通常是负的或非常小(靠近顶部的负值,靠近底部的小值).这些是我在左上角附近点击时得到的值(应该注册为0或者接近0:"x"=>"219","y"=>" - 311"...... 219似乎是正确的测量距浏览器窗口左侧的距离,但距离应在照片区域内)

我目前正在使用常规链接(链接包含其他相关照片数据)捕获照片上的点击事件和坐标,并在将其传递给我的rails应用程序之前进行数学运算(jquery文档中使用的相同计算).我怀疑这个方法与错误的值有很大关系,尽管我怀疑数学或某些css怪可能有问题.在任何一种情况下,我都绝对是难以置信的.

JS:

$(document).ready(function(){
clickTag();

});

function clickTag(){
   $("#taggable").click(function(e){
        var x = e.pageX - this.offsetLeft;
        var y = e.pageY - this.offsetTop;
        var url = $(this).attr("href");
        courl = url + '&x=' + x + '&y=' + y;
      $.ajax({
        type:"GET",
        url: courl,
        dataType:"script"
        });
        return false;
   }); 
}

CSS:

`
taggable_image
`

Darko Z.. 22

为你的x和y尝试使用这个:

var x = e.pageX - $(this).offset().left;
var y = e.pageY - $(this).offset().top;

如果这不起作用,请告诉我

编辑:澄清 - 您直接从dom元素获得左侧和顶部偏移.我建议你使用jQuery offset()函数的原因是jQuery更有可能计算出跨浏览器的正确位置.

编辑2:您可以尝试将点击事件分配给图像而不是链接.我有一种潜在的怀疑,即链接报告其顶部偏移量作为它封装的元素的底部...



1> Darko Z..:

为你的x和y尝试使用这个:

var x = e.pageX - $(this).offset().left;
var y = e.pageY - $(this).offset().top;

如果这不起作用,请告诉我

编辑:澄清 - 您直接从dom元素获得左侧和顶部偏移.我建议你使用jQuery offset()函数的原因是jQuery更有可能计算出跨浏览器的正确位置.

编辑2:您可以尝试将点击事件分配给图像而不是链接.我有一种潜在的怀疑,即链接报告其顶部偏移量作为它封装的元素的底部...

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有