jQuery passez div en dessous d'une autre couche
Est-il possible d'ignorer tous les divs qui sont "au-dessus" de l'élément qui a le hover " lié " avec jQuery? Par exemple, j'ai Un élément qui a un hover événement lié à elle, mais il y a aussi d'autres éléments B, C, D "absolu placé" au-dessus de l'élément de A. Ainsi, lorsque l'utilisateur de la souris se déplace au-dessus de l'élément B, C, D, hover événement n'est plus tiré, même si B, C, et D sont directement au-dessus de l'élément. Est-il possible d'ignorer les éléments B, C et D?
Mise à JOUR:
Je suis en train d'essayer de créer une carte (élément A) avec des éléments B, C, D de la zone des étiquettes. Ainsi, par exemple, pour une carte de l'état de New York, vous aurez des éléments de texte "Manhattan", "New Jersey", etc chevauchement de la carte. C'est pourquoi j'ai besoin de le placez à feu, même si l'utilisateur dispose de sa souris sur les étiquettes.
OriginalL'auteur peter | 2011-03-06
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez utiliser CSS3, alors vous pouvez définir
pointer-events:none
pour les éléments en position absolue, voir démo ici.Tous les navigateurs modernes en charge cette propriété uniquement IE9 et ci-dessous et Opera Mini ne le supporte pas (au moment de la rédaction). Cela signifie également que vous n'aurez pas de pointeur-événements pour les éléments qui pourraient ne pas être exactement ce que vous voulez.
C'est génial.
Mille merci !!!
OriginalL'auteur
La façon dont je le vois, vous avez quelques options:
Vous pouvez peut-être également capable de se lier à juste la cible (c'est à dire Un) et tous les éléments qui peuvent se chevaucher, puis il suffit de vérifier si la position de la souris dans l'autre contrôle hypothétiquement également être à l'intérieur de l'Une de contrôle. Moins de frais généraux que la liaison à la page et de contrôle, mais encore plus qu'à l'ordinaire.
Le plus haut est toujours prioritaire: jsfiddle.net/taJtM (en stationnaire, de toute façon)
Donc vous voulez dire qu'il ne se déclenche le haut la plupart des cas, et ne pas pousser à la sous-élément événements?
Vous peut, vous avez juste à dire que chaque fois que l'élément B a tiré un hover doit en fait, dire que l'élément A est en cours de survol. (mais ce n'est pratique que si B est un croisement complet de A)
Ouais, je pensais que. Si il y a des chevauchements, puis le périmètre de contrôle est probablement la voie à suivre (toujours attacher hover pour tous les éléments à l'intérieur du périmètre). Je n'aime pas la superposition de l'approche. Trop artificiel.
OriginalL'auteur
E.relatedTarget pour déterminer si l'utilisateur survole l'un de vous imbriquée (absolue) des éléments. Peut-être plus facile si vous donnez à vos étiquettes de la carte une classe
e.g: Pour vous montrer les étiquettes lors d'un état de pointage sur la carte, et de seulement les masquer lorsque l'utilisateur quitte la carte
OriginalL'auteur
La seule solution que j'ai à l'esprit en ce moment est de créer un élément invisible en haut et lui donner le hover déclencheur.
OriginalL'auteur
Vous pouvez faire le z-index de l'élément supérieur à celui de la B, C et D éléments.
OriginalL'auteur
Bien qu'il existe différentes façons de résoudre ce problème, probablement le plus simple serait d'ajouter le hover événement pour tous les éléments:
HTML
CSS
jQuery
Exemple ici: http://jsfiddle.net/userdude/H5TAG/
OriginalL'auteur
Le z-index de réglage de quelqu'un d'autre. Faire le z-index plus élevé pour l'élément que vous souhaitez être reconnu par le vol stationnaire.
OriginalL'auteur