Maison  >  Article  >  interface Web  >  Déterminez s'il faut exécuter le code suivant après le chargement des compétences CSS.

Déterminez s'il faut exécuter le code suivant après le chargement des compétences CSS.

WBOY
WBOYoriginal
2016-05-16 16:37:301418parcourir

J'écris actuellement le framework du projet et j'écris une classe JQueryMessageBox pour utiliser dialog() dans jquery ui pour afficher la boîte de message Afin de rendre la méthode facile à appeler, j'ai ajouté un jugement automatique si la page a été ajoutée. ui.js et ui .css, le code est le suivant :

//如果没有包含ui.js,则引用 
if ($('script[src$=""jquery-ui-1.8.11.custom.min.js""]').length == 0) {{ 
$(""<script src='/js/jquery-ui-1.8.11.custom.min.js' type='text/javascript' />"").appendTo('head'); 
}} 
//如果没有加载css,则加载 
if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) {{ 
$('<link href=""/css/jquery-ui-1.8.14.custom.css"" rel=""stylesheet"" type=""text/css"" />').appendTo('head'); 

//dialog() script 
}}

Mais le code CSS ne sera pas chargé immédiatement, donc il n'y aura pas de style à l'affichage de la boîte de dialogue (c'est OK sous IE9, car sous IE9, même si le CSS est téléchargé plus tard, les éléments de la page seront redessinés, alors que IE8 ne le fait pas). Pour résoudre ce problème, vous pouvez utiliser ajax. Une fois le CSS chargé, la boîte de dialogue s'affichera, afin qu'elle puisse être affichée avec style :

.
if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) { 
$.ajax({ 
url: '/css/jquery-ui-1.8.14.custom.css', 
success: function(data) { 
//创建一个style元素,并追加到head中 
//替换其中images的路径 
$('<style type="text/css">' + data.replace(/url\(images/g, 'url(/css/images') + '</style>').appendTo('head'); 
//dialog() script; 
} 
}); 
} 
else { 
//dialog() script; 
}
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn