我想读取相对于点击元素e.target
而不是eventObject.pageX
和eventObject.pageY
的位置。
var eventObject = null;
$(document).click(function(e){
eventObject = e;
//how to get position relative to e.target ??
});
你有没有尝试过:?
var posX = $(this).position().left, posY = $(this).position().top;
alert((e.pageX - posX) + ' , ' + (e.pageY - posY));
根据您的需要,有两种获取元素位置的方法。
这将返回相对于元素父级的位置
$(eventObject.target).position().top;
$(eventObject.target).position().left;
这是针对相对于文档的位置
$(eventObject.target).offset().top;
$(eventObject.target).offset().left;
实现的不同取决于元素的位置(绝对或相对)
var targetRelativeX = eventObject.pageX - eventObject.target.offsetLeft;
var targetRelativeY = eventObject.pageY - eventObject.target.offsetTop;
我认为它可以你的see here
$(document).ready(function(){
$("button").click(function(){
var x = $("p").position();
alert("Top position: " + x.top + " Left position: " + x.left);
});
});