2009-12-11 2 views
0

Высокий, мне было интересно, можно ли выбрать элемент на странице через его координаты?Получить элемент через координаты?

Причина: я пытаюсь сделать редактируемую страницу, где вы можете щелкнуть правой кнопкой мыши на выделенных элементах, появится меню, а затем выберите из параметров. используя единственный метод, который я мог найти, который работал над тем, чтобы выбрать элемент с помощью зависания, который он использует (event.target), который, если у него много родителей в сочетании с другим кодом, он пробивает и теряет другие данные на этом пути. Если я смогу найти другой метод выделения элементов, которые, конечно, будут лучше.

+0

Я загрузил демоверсию для показа. если вы щелкните правой кнопкой мыши на странице, выделив абзац, но направо, вы увидите, что меню отображается там, где оно было предложено, и исчезнет, ​​затем перейдите в верхний левый угол. http://www.actwebdesigns.co.uk/test –

+2

См. Http://stackoverflow.com/questions/1569775/how-do-i-find-the-dom-node-that-is-at-a -given-xy-position-hit-test и http://stackoverflow.com/questions/1471047/how-to-know-what-elements-are-in-current-mouse-position и http://stackoverflow.com/questions/48999/get-div-id-based-on-xy-position/54595 # 54595 –

+0

Crescent Fresh вы также должны добавить, что 'elementFromPoint' ведет себя иначе, чем браузер в браузер. Таким образом, на самом деле не совместимо с кросс-браузером – jitter

ответ

0

Это ужасный способ сделать то, что вы пытаетесь сделать, и я говорю по опыту: унаследовал инструмент календаря, который определяет, в какой день месяца вы нажали на основе ваших координат мыши. Глупое дело, безусловно, работает, но это гигантский PITA для поддержания/модификации/добавления в любом случае.

Гораздо лучший способ сделать это (если вы не хотите, чтобы кошмар для обслуживания в будущем) должен был использовать объект события. Если вы подключаете свои события к правильным объектам и используете e.target (или, если вы используете jquery, «this»), вы должны иметь возможность очень легко направлять правильные действия на основе того, где пользователь нажал, без какой-либо корыстной ерунды ,

Смежные вопросы