/ / chosen.js lascia aperti gli elenchi a discesa al caricamento della pagina in IE7 - jquery, internet-explorer-7

selected.js lascia aperti gli elenchi a discesa sul caricamento della pagina in IE7 - jquery, internet-explorer-7

Sto usando il plugin scelto da jQuery ( http://harvesthq.github.com/chosen/ ) su una delle mie forme e tutto va bene. Tuttavia, quando ho colpito la pagina con IE7, esso qualche volta lascia aperti i menu a discesa, come se fossero stati ottenutifocus sul keybord. Voglio assicurarmi che non si aprano mai fino a quando l'utente non fa clic, quindi ho provato varie correzioni come queste per rimuovere lo stato attivo dalle selezioni quando la pagina viene caricata:

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

E variazioni di ciò, ma nulla sembra aiutare. Non so se .chosen() posso accettare un callback, in tal caso inserirò il codice lì, ma finora un'altra possibilità è che queste linee siano in esecuzione prima che la scelta abbia finito di fare quello che fa.

Quindi, tralasciando un timeout (che davvero non voglio fare ma lo farà se è l'unica soluzione) qualcuno sa come posso fermare questo successo?

risposte:

3 per risposta № 1

Non sono sicuro del motivo per cui questo non ha funzionato, ma ho trovato una soluzione alternativa a qualunque fosse il problema.

Questa linea:

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

Era nella parte superiore del mio script, alcune centinaia di righe di codice con altri plugin utilizzati che facevano anche cose con gli input che seguono.

Spostamento di questa riga alla fine dello script risoltoquesto problema - Sto indovinando che qualcosa deve essere in conflitto con questo o aver cambiato una proprietà mentre questo cambiava la stessa proprietà - ma non riuscivo a indovinare quale plugin o dove stava accadendo.

Funziona ma non sono affatto più saggio su quale sia stato effettivamente il problema :(

AGGIORNARE: Un problema correlato è apparso oggi su IE7, che ha fatto apparire gli elenchi a discesa uno dietro l'altro se hai scelto una selezione vicina a un'altra.

Questo lo risolve:

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

AGGIORNAMENTO di BigM

C'è un'altra cosa che devi fare e che è impostare l'opacità per IE5-7 in questo modo per quando è disabilitato:

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

1 per risposta № 2

In effetti Chosen 0.9.8 funziona con IE 7 se si rimuove la condizione IE 7:

e.browser.version!=="7.0"

E applicare sopra la patch:

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

0 per risposta № 3

Il componente jQuery Chosen non funziona con IE7, almeno nella sua ultima versione. Dubito che sarai in grado di continuare a usarlo.