Essayer de consolider le code jQuery
-
28-10-2019 - |
Question
J'ai beaucoup de code qui a le plus besoin d'être chargé AVANT l'autre morceau de code pour qu'il fonctionne correctement.Pour y parvenir, j'ai plusieurs scripts encore et encore.Y a-t-il un moyen de nettoyer une partie de cela?Je vais essayer de donner des exemples:
//This needs to load first to add class
<script>
$(function(){
if (typeof(global_Current_ProductCode) !="undefined")
{
if ($('#pt494').length == 0 )
{ $('font[class="text colors_text"]:eq(0)').closest('table').addClass('thePrices'); }
}
});
</script>
//This needs to load 2nd because it has to add the class first before it does this
<script>
$(function(){
if (typeof(global_Current_ProductCode) !="undefined")
{
if ($('#pt490').length == 0 )
{ $('table[class="thePrices"]:eq(0)').closest('table').before($('font[class="productnamecolorLARGE colors_productname"]:eq(0)').addClass('toptitle'));}
}
});
</script>
Il y a tellement plus de code similaire à celui-ci, il doit y avoir un moyen de tout jeter sous la même instruction IF?
La solution
Je ne suis pas sûr de comprendre votre question.Les blocs de code écrits en séquence ne sont pas exécutés simultanément.Ainsi, vous pouvez consolider votre code comme ceci:
<script>
$(function(){
if (typeof(global_Current_ProductCode) !="undefined")
{
if ($('#pt494').length == 0 )
{
$('font[class="text colors_text"]:eq(0)').closest('table').addClass('thePrices');
}
if ($('#pt490').length == 0) {
$('table[class="thePrices"]:eq(0)').closest('table').before($('font[class="productnamecolorLARGE colors_productname"]:eq(0)').addClass('toptitle'));
}
}
});
</script>
Autres conseils
À part la conception de votre propre framework, vous ne pouvez pas faire grand chose à part essayer d'écrire du code plus propre à l'avenir.D'après mon expérience, je consolide généralement tous les éléments d'injection html en une seule fonction et je l'appelle avant toute autre chose.
Vous pouvez également séparer les fonctions en $ (document) .ready () et $ (window) .load.Le chargement de la fenêtre se produira une fois le document prêt, mais ce n'est certainement pas une solution complète pour le code désordonné.