У меня есть обработчик mousedown
события на img
элементе:Как получить смещение mousedown относительно элемента-цели img?
$('#some_image').bind({
mousedown: function(e) {
var img = e.target;
var relpos = ???;
}
})
Как я могу получить расположение mousedown
относительноimg
? Относительно, то есть к любому углу img
, в зависимости от того, что проще всего.
FWIW, я использую jQuery.
(. Извините за тупой вопрос, я полагаю, что ответ должен быть тривиальным, но я не могу найти его, и это сводит меня с ума ...)
EDIT: Хорошо, вот ответ:
$('#some_image').bind({
mousedown: function(e) {
var offset = $(this).offset();
var relpos = [e.pageX - offset.left, e.pageY - offset.top];
// etc.
}
})
на самом деле, я обнаружил, что за то, что я делаю это лучше вычитать Math.round(offset.left)
и Math.round(offset.top)
, а не сырые смещения, так как последний не всегда целые числа (идут цифра).
BTV, по крайней мере, в соответствии с Firebug, мероприятия offsetX
и offsetY
не определены, и layerX
и layerY
даже не входит в число его членов.
Спасибо, этот ответ был самым близким к тому, что я, наконец, поселился (см. Мой EDIT в исходное сообщение). – kjo