/ / jQuery show () ne fonctionne pas avec blockUI dans IE8 ou IE9 - jquery, internet-explorer-8, internet-explorer-9, blockui

La méthode show () de jQuery ne fonctionne pas avec blockUI dans IE8 ou IE9 - jquery, internet-explorer-8, internet-explorer-9, blockui

Le titre dit tout. Fonctionne parfaitement dans n’importe quel autre navigateur, mais dans IE8 et IE9, la méthode show () ne fonctionne pas ...

Voici comment le modal blockUI est configuré dans le code:

            $.blockUI({
uniqueName: "the-modal-that-will-not-show",
focusInput: false,
message: foo_html,
css: {
padding: 0,
margin: 0,
top: "50%",
left: "50%",
"margin-top": "50px",
"margin-left": "275px",
textAlign: "left",
color: "#000",
position: "absolute",
width: "530px",
"z-index": 2300,
left: "0px",
top: "10px"
},
overlayCSS: {
"z-index": 2299,
opacity: 0.5
}
});

Et peu importe où je mets

$("#the-modal-that-will-not-show").show()

... cela ne se verra pas. Si j'ouvre la console Javascript dans IE et que je tape cette commande, le modal s'affichera, mais au mauvais endroit et avec certaines des entrées mal formatées.

Et la chose étrange est que j'ai entouré le.Commande show () avec des alertes qui m'indiquent si le modal est visible. Avant la commande .show (), elle me dit "false" et après elle dit "true", même si elle n'apparaît pas à l'écran.

J'ai également essayé de mettre tout le contenu CSS entre guillemets, comme "padding": "0", etc. Cela n'a pas changé.

Pensées???

Réponses:

-1 pour la réponse № 1

J'ai trouvé le problème:

La fonction qui contient ce modal est appelée immédiatement après une commande $ .unblockUI et IE exécute le code avant que $ .unblockUI ne soit terminé. Si je mets un délai, cela fonctionne correctement.