8
votes

Internet Explorer et avec quelques


0
votes

Dans l'événement de Mouseout pour la DIV Ajoutez un délai d'attente à l'élément DIV qui cachera la DIV en 200 millisecondes ou plus.

Ensuite, dans l'événement de la Mouseover pour la DIV / SELECT et l'événement de clic de la sélection Effacer le délai d'attente stocké dans l'élément div.

Cela donne un délai très léger avant de cacher la DIV qui permet aux événements de la Mousever ou de cliquer sur pour effacer le délai d'attente avant d'être exécuté. Ce n'est pas joli mais cela devrait fonctionner.


1 commentaires

C'est la seule chose que je pouvais penser. Il est prêt comme ça pour le moment. Dommage que je ne trouve rien de mieux.



9
votes

Vous devriez être capable de détecter si la situation est celle que vous souhaitez juste avec les valeurs hors de l'événement. C'est un peu compliqué mais il semble fonctionner.

dans le gestionnaire d'événements de votre externe div , faites quelque chose comme ceci: xxx

Ensuite, implémentez la méthode isreal : xxx

essentiellement de la méthode isreal est simplement détecte si l'événement venait de l'événement . Si tel est le cas, il renvoie FALSE qui évite d'appeler la cachette de la cache.


1 commentaires

C'est essentiellement ce que je suis venu ici pour poster. Ceci est similaire à la façon dont Marotools implémente leur Mouseover et mouseout événements, mais beaucoup plus succint. Probablement la meilleure solution.



0
votes

Au lieu d'utiliser Mouseout comme l'événement Pour fermer la DIV, utilisez Mouseleave, l'événement ne sera déclenché que lorsque le pointeur quitte la limite de la DIV, pas lorsqu'elle se déplace sur d'autres éléments de l'intérieur


0 commentaires

0
votes

Vous pouvez essayer d'ajouter un autre événement de Mouseover spécifiquement pour la liste des options.


1 commentaires

Vous ne pouvez pas ajouter d'événement pour la liste des options qui serait déclenchée sous IE.



0
votes

Eh bien, la raison de ce comportement est dû au fait que la bulle d'événements Mouseover / Out, ce qui signifie efficacement que chaque fois que vous mousiez l'un des éléments de la popup, le popup reçoit également l'événement.

Vous pouvez lire plus ici sur ces événements et ici à propos de l'événement bouillonnant.

Vous avez 3 solutions possibles ici:

  1. Modifiez les événements à Onmouseenter / partir. Vous avez mentionné que cela n'a pas aidé, ce qui semble simplement étrange, car ceux-ci ne sont pas censés bulles.

  2. Vérifiez la srogation par rapport à / toelement dans l'événement.

    une version améliorée de Le chèque de McKamey serait: xxx

    fait la même chose, juste plus courte.

    3. Une autre option serait de créer un DIV transparent et invisible juste sous votre popup qui couvre la zone que la boîte de sélection tombe dans. Je suppose que cela tombe en dehors de la zone réelle de la popup.

    espère que cela aide!


0 commentaires

0
votes

Avez-vous essayé survol au lieu d'effets Mousever / Out? XXX


1 commentaires

Oui. Toujours ne fonctionne pas :-) C'était en fait comment je l'avais à l'origine.



0
votes

Qu'en est-il de quelque chose comme ceci: xxx

L'idée de base est que vous affichez l'élément de conteneur lorsque vous allumez sur la gâchette, puis lorsque vous laissez le conteneur, vous cachez le conteneur. Vous auriez besoin de positionner le conteneur afin qu'il a coupé l'élément de déclenchement, sinon il se cacherait tout de suite.


0 commentaires

0
votes

Pourquoi avoir la mouseover / Mouseout sur le

? Pourquoi ne pas simplement montrer le
sur la souris sur, puis définissez je ne sais pas si cela fonctionnerait, Mais si le
est en haut du corps, le
devrait rester visible.

0 commentaires

0
votes

Beaucoup de gens postant des solutions / exemples ne semblent pas réaliser une chose: Onmouseout événement sur

Fires avant Onmouseover événement sur Obtient la mise au point (Mouseover) Ne ferme pas
du tout (Cleartimeout).

Aussi, essayez de jouer avec la propagation d'événement / Bubling.


0 commentaires

0
votes

étant donné que SELECT dans IE est une douleur, en particulier lorsqu'il s'agit de la question de la superposition dans laquelle une sélection apparaît au-dessus d'une div, même si elle ne devrait pas, puis-je vous pointer de vous indiquer dans la direction des contrôles du bouton de menu de YUI. Ils ont l'air vraiment agréable, sont faciles à mettre en œuvre et ne causeront pas de ce problème

Voici un lien: http://developer.yahoo.com/ yui / exemples / bouton / btn_example07.html


0 commentaires

0
votes

Vous devez utiliser événement.stoppropagation () pendant dans < / code> élément lui-même.


0 commentaires