2009-12-11 6 views
0

Tout haut, je me demandais s'il était possible de sélectionner un élément sur la page via ses coordonnées?Obtenir l'élément via les coordonnées?

raison étant que j'essaie de faire une page modifiable où vous pouvez faire un clic droit sur les éléments en surbrillance, le menu apparaît, puis sélectionnez parmi les options donnent. en utilisant la seule méthode que j'ai pu trouver qui a fonctionné pour sélectionner l'élément via hover, il utilise (event.target) qui, s'il a beaucoup de parents combinés avec d'autres codes, il boucle et perd d'autres données en cours de route. Si je peux trouver une autre méthode pour mettre en évidence les éléments qui seraient bien sûr mieux.

+0

J'ai téléchargé une démo pour montrer. Si vous faites un clic droit sur la page, en mettant en surbrillance un paragraphe mais à droite, vous devriez voir le menu apparaître là où il est prévu, disparaître puis aller dans le coin supérieur gauche. http://www.actwebdesigns.co.uk/test –

+2

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

+0

Crescent Fresh vous devriez également ajouter que 'elementFromPoint' se comporte différemment du navigateur au navigateur. Donc, n'est pas vraiment compatible avec tous les navigateurs – jitter

Répondre

0

C'est une façon terrible de faire ce que vous essayez de faire, et je parle par expérience: j'ai hérité d'un outil de calendrier qui détermine le jour du mois sur lequel vous avez cliqué en fonction de vos coordonnées de souris. La chose stupide fonctionne certainement, mais c'est un PITA géant à maintenir/modifier/ajouter de quelque façon que ce soit.

Le meilleur moyen d'y parvenir (à moins que vous ne souhaitiez un cauchemar de maintenance dans le futur) est d'utiliser l'objet événement. Si vous connectez vos événements aux objets corrects et utilisez e.target (ou, si vous utilisez jQuery, "this") vous devriez être capable d'acheminer très facilement les actions correctes en fonction de l'endroit où l'utilisateur a cliqué, sans aucune absurdité de coordonnées .