2009-06-27 8 views
1

j'ai plusieurs (quelque peu) chevauchant div s, et si l'utilisateur clique sur une partie du chevauchement, je veux un événement mousedown (ou tout rappel similaire) pour chaque div qui est en dessous des coordonnées de la souris.Comment générer plusieurs événements mousedown avec des objets qui se chevauchent dans jQuery?

La méthode standard, bien sûr, génère uniquement un rappel pour le div le plus haut. Est-ce possible?

+0

La seule façon qui vient à l'esprit serait de chercher tous les divs sur la page et vérifier si une partie d'entre eux est dans les limites du clic de la souris, mais ce serait terriblement inefficace . –

+0

Oui, j'ai pensé à ça. Mais n'est-ce pas ainsi que l'événement mousedown doit fonctionner de toute façon? –

+0

Je suis d'accord avec Dans comment, c'est la seule façon dont je peux penser à le faire aussi. Quelques informations sur la capture d'événement/bulle ici http://is.gd/1fQbE. Je suppose que vous pourriez stocker chaque coordonnée divs dans un objet (les mettre à jour s'ils bougent) et les boucler de cette façon, accélérer les choses plutôt que traverser tous les divs et trouver les coordonnées à chaque fois. Thats comment je l'aborderais je pense. – Nooshu

Répondre

2

J'ai fini par dessiner un grand div (vide) sur tout, en stockant la position de chaque petit gars, puis en gérant l'événement mousedown du grand div et en le distribuant aux plus petits.

C'est un peu mieux que de parcourir toutes les divs de la page car il y a une certaine structure là où elles se trouvent, donc la recherche est plus rapide.

Questions connexes