En cliquant sur un div de la barre de défilement feux de l'effet de flou de l'événement dans I. E
J'ai un div qui agit comme un déroulante. De sorte qu'il apparaît lorsque vous cliquez sur un bouton et vous permet de faire défiler cette grande liste. Donc, la div a une barre de défilement verticale. La div est censé disparaître si vous cliquez en dehors de la div, c'est à dire sur le flou.
Le problème est que lorsque l'utilisateur clique sur le div de la barre de défilement, c'est à dire, à tort, les feux de la onblur
événement, alors que Firefox ne fonctionne pas. Je suppose que Firefox traite toujours la barre de défilement dans le cadre de la div, ce qui je pense est correct. Je veux juste c'est à dire à se comporter de la même manière.
- wow! pas de réponses encore? je vais peut-être attendre la prochaine version d'IE.
- Il serait utile si vous fourni plus de détails. Qu'essayez-vous de faire? Quel élément est tir le flou de l'événement? Pourquoi est-ce un problème?
- J'ai édité la description pour donner plus d'infos.
Vous devez vous connecter pour publier un commentaire.
Je vais avoir un problème similaire avec IE tir le flou de l'événement lorsque vous cliquez sur une barre de défilement. Apparemment, il ne se produit n IE7 et ci-dessous, et IE8 en quirksmode.
Voici ce que j'ai trouvé via Google
https://prototype.lighthouseapp.com/projects/8887/tickets/248-results-popup-from-ajaxautocompleter-disappear-when-user-clicks-on-scrollbars-in-ie6ie7
Fondamentalement, vous ne le flou si vous savez que la personne a cliqué quelque part sur le document autres que les concentre actuellement div. Il est possible d'inversement de détecter la barre de défilement sur car le document.onclick n'est pas feu lorsque vous cliquez sur la barre de défilement.
J'ai eu un problème similaire avec une barre de défilement dans une saisie semi-automatique de liste déroulante. Depuis la liste déroulante doit être masqué lorsque l'élément de formulaire, il est attaché perd le focus, le maintien de l'accent sur l'élément correct est devenu un problème. Lorsque la barre de défilement a été cliqué, seulement Firefox (10.0) a maintenu l'accent sur l'élément d'entrée. IE (8.0), Opéra (11.61), Chrome (17,0) et Safari (5.1) tous supprimés à partir de l'entrée, résultant dans la liste déroulante étant caché, et depuis qu'il a été masqué, cliquez sur événements ne serait pas le feu sur la liste déroulante.
Heureusement, le changement d'orientation peut être facilement évitée en plus du problème des navigateurs. Ceci est fait en annulant le navigateur par défaut de l'action:
L'ajout d'une valeur de retour pour le gestionnaire d'événement réglé le problème sur tous les navigateurs sauf IE. Faire cela annule le navigateur par défaut d'action, dans ce cas, le décalage de mise au point. Aussi, en utilisant le mousedown au lieu de cliquer signifie que le gestionnaire d'événement est exécuté avant que le flou de l'événement tiré sur l'élément d'entrée.
Cette gauche-dire comme le seul problème (qui n'est pas surprenant). Il s'avère qu'il n'existe aucun moyen d'annuler le décalage de focus sur IE. Heureusement, IE est le seul navigateur qui déclenche une manifestation thématique sur la liste déroulante, le sens se concentrer sur l'élément d'entrée peut être restauré avec un IE exclusive du gestionnaire d'événement:
Cette solution pour IE n'est pas parfait, mais alors que le décalage de mise au point n'est pas annulable, c'est le meilleur que vous pouvez faire. Ce qui se passe est que le flou événement se déclenche à l'entrée, à cacher la liste déroulante, après lequel concentrer les feux sur la désormais caché déroulante, qui restaure l'accent sur l'entrée et déclenche montrant la liste déroulante. Dans mon code il déclenche également le repeuplement de la liste déroulante, résultant dans un court délai et de la perte de la sélection, mais si l'utilisateur veut faire défiler la sélection est probablement inutile de toute façon, donc j'ai considéré ce acceptables.
J'espère que cela est utile, même si mon exemple est légèrement différente de la question. De ce que j'ai recueillis, la question était sur IE tir un flou de l'événement sur la liste déroulante lui-même, plutôt que le bouton qui l'a ouvert, qui n'a aucun sens pour moi... Comme mon utilisation de l'accent gestionnaire d'événement indique, en cliquant sur une barre de défilement doit déplacer le focus à l'élément de la barre de défilement est partie sur IE.
$('.token-input-dropdown-facebook').mousedown(function() { return false; });
Réponse tardive, mais j'ai eu le même problème et le courant réponses ne fonctionne pas pour moi.
L'état de pointage de la popup élément fonctionne comme prévu, donc, dans votre flou de l'événement, vous pouvez vérifier pour voir si votre popup élément est planait, et seulement supprimer/masquer, si elle n'est pas:
Vous aurez besoin de déplacer le focus à l'élément d'origine qui a le flou de l'événement lié à elle. Ce n'interfère pas avec la vitesse de défilement:
Cela ne fonctionne pas avec IE7 ou de faible donc il suffit de déposer le support...
Exemple: http://jsfiddle.net/y7AuF/
C'est une vieille question, mais depuis il s'applique toujours à IE11 voici ce que j'ai fait.
J'écoute l'événement mousedown sur le menu et définir un indicateur sur cet événement. Quand je attraper le flou de l'événement, si le mousedown drapeau est sur, j'ai mis le focus. Depuis le Bord, FF et Chrome ne se déclenche pas le flou de l'événement, mais déclenche l'événement mouseup (qui IE ne veut pas), j'ai réinitialisé le mousedown drapeau sur le mouseup pour eux (dans le flou pour IE).
De cette façon, le menu reste visible et l'utilisateur n'est pas perdre quoi que ce soit.
mouseup
événement. Le seul problème est avec IE tir d'uneblur
événement (inutilement) en cliquant sur la barre de défilement, tandis que les autres navigateurs ne le font pas. Ainsi, lamouseup
partie est inutile. Nous avons seulement besoin de lamousedown
drapeau à partir de la liste déroulante de l'élément et encore moins logique.Utilisation focusout, et focusin (c'est à dire des événements spécifiques)
focusout
&focusin
ne sont plus IE des événements spécifiques, donc pas aller.J'ai eu le même probleme. Résolu en mettant le menu dans un emballage (plus grand) div. Avec le flou appliqué à l'enveloppe, il a travaillé!
Peut-être essayer d'ajouter de la
tabindex
attribut-1
à ladiv
nœud.