/ / chose.js laisse les listes déroulantes ouvertes lors du chargement de la page dans IE7 - jquery, internet-explorer-7

selected.js laisse les listes déroulantes ouvertes sur le chargement de la page dans IE7 - jquery, internet-explorer-7

J'utilise le plugin jQuery choisi ( http://harvesthq.github.com/chosen/ ) sur une de mes formes et tout va bien. Cependant, lorsque je frappe la page avec IE7, il parfois laisse les listes déroulantes ouvertes, comme si elles étaient devenuesfocus clavier. Je veux m'assurer qu'ils ne s'ouvrent jamais tant que l'utilisateur n'a pas cliqué, j'ai donc essayé divers correctifs tels que ceux-ci pour supprimer le focus des sélections lorsque la page se charge:

$("#mySelect").trigger("blur");
$("#someOtherInput").focus();
$("body").trigger("click");

Et leurs variantes, mais rien ne semble aider. Je ne sais pas si .chosen() peut accepter un rappel, si c'est le cas, je vais y mettre le code, mais jusqu'à présent, une autre possibilité est que ces lignes s'exécutent avant que choisi n'ait fini de faire ce qu'il fait.

Donc, en laissant de côté un délai d'attente (ce que je ne veux vraiment pas faire mais le fera si c'est la seule solution) quelqu'un sait-il comment je peux arrêter ce bonheur?

Réponses:

3 pour la réponse № 1

Je ne sais pas pourquoi cela n'a pas fonctionné, mais j'ai trouvé une solution à ce problème.

Cette ligne:

$("#mySelect").chosen();

Était en haut de mon script, quelques centaines de lignes de code avec d'autres plugins utilisés qui ont également fait des trucs avec les entrées suivantes.

Déplacement de cette ligne à la fin du script corrigéce problème - je suppose que quelque chose doit avoir été en conflit avec cela ou changé une propriété alors que cela changeait la même propriété - mais je ne pouvais pas deviner quel plugin ou où cela se passait.

Cela fonctionne, mais je ne suis pas plus sage quant au véritable problème :(

MISE À JOUR: Un problème connexe est apparu aujourd'hui sur IE7, qui a fait apparaître les listes déroulantes les unes derrière les autres si vous avez une sélection choisie proche d'une autre.

Cela corrige ça:

$(".chz").chosen();
var zidx = 100;
$(".chzn-container").each(function(){
$(this).css("z-index", zidx);
zidx-=1;
});

UPDATE by BigM

Il y a encore une chose que vous allez devoir faire, et c'est configurer l'opacité pour IE5-7 comme ceci pour quand il est désactivé:

.chzn-disabled {
cursor: default;
opacity:0.5 !important;
filter: alpha(opacity=50) !important;
}

1 pour la réponse № 2

En fait, Chosen 0.9.8 fonctionne avec IE 7 si vous supprimez la condition IE 7:

e.browser.version!=="7.0"

Et appliquez le patch ci-dessus:

var zidx = 100;
$(".chzn-container").each(function(){
$(this).css("z-index", zidx);
zidx-=1;
});

0 pour la réponse № 3

Le composant jQuery Chosen ne fonctionne pas avec IE7, du moins dans sa dernière version. Je doute que vous puissiez continuer à l’utiliser.