Cercando di consolidare il codice jQuery
-
28-10-2019 - |
Domanda
Ho un sacco di codice che è più necessario caricare prima dell'altro codice per funzionare correttamente. Affinché io possa raggiungere questo obiettivo, ho più script più e più volte. C'è un modo per pulire un po 'di questo? Proverò a dare esempi:
//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>
C'è molto più codice simile a questo, deve esserci un modo per lanciare tutto sotto la stessa affermazione If?
Soluzione
Non sono sicuro di aver capito la tua domanda. I blocchi di codice scritti in sequenza non vengono eseguiti contemporaneamente. Quindi, potresti consolidare il tuo codice in questo modo:
<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>
Altri suggerimenti
A parte la progettazione del tuo framework non c'è molto che puoi fare oltre a provare a scrivere codice più pulito in futuro. Nella mia esperienza generalmente consolido tutte le cose di iniezione HTML in un'unica funzione e lo chiamo prima di ogni altra cosa.
Puoi anche separare le funzioni a $ (documento) .ready () e $ (finestra) .load. Il carico della finestra avverrà dopo il documento pronto, ma questo non è assolutamente una soluzione End All per il codice disordinato.