【发布时间】:2009-07-14 23:29:06
【问题描述】:
我正在开发一个允许通过点击直接在照片上标记的应用程序(如 Facebook、flickr 等)。但是,我似乎无法为点击照片注册正确的坐标。问题是 x 坐标似乎是在浏览器窗口内(而不是在照片内)单击的绝对 x 距离,而 y 坐标通常是负数或非常小(靠近顶部的负数,靠近底部的小)。这些是我在左上角附近单击时得到的值(应该注册为处于或接近 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:
`<div class="content">
<div id="image_container" style="position:relative;width:405px;float:left;height:600px;>
<a href="/tags/new_xy?look_id=188&photo_id=1150" id="taggable" style="position:relative;top:0;left:0px;"><img alt="taggable_image" src="taggable_image.jpg" /></a>
<div class="tags" id="tags"></div>
</div>
</div>`
【问题讨论】:
标签: javascript jquery ajax