2015-01-06 5 views
6

Sto lavorando all'aggiornamento del mio sito Web, che ora utilizza un motore AJAX. Il mio motore funziona bene, per qualche ragione, alcune pagine non eseguono javascript, lasciatemi spiegare: quando cambi ancora uso $ .get per il recupero dei dati. Le pagine hanno questa struttura:

title 
h1 
script1.js,script2.js,etc.js 
style1.css,style2.css,etc.css 
<!--there's the page's content--> 

Sembra ricaricare la pagina risolve il problema, ma non capisco ciò che è diverso. Nel codice precedente, il motore viene eseguito correttamente, ricaricato o no:

$.getScript("script1.js"); 
$.getScript("script2.js"); 
$.getScript("etc.js"); 


Inoltre, uno script php generato contiene lo stato corrente dell'utente sotto forma di oggetto:

$(function(){ 
    user = new Object(); 
    user.id = user.logged = <?php echo $user->getId();?>; 
    user.nick = "<?php echo $user->getNick();?>"; 
    user.mail = "<?php echo $user->getMail();?>"; 

    user.logout = function(){ 

    }; 
}); 

Il $ La richiesta .getScript ha esito positivo, ma l'oggetto utente non viene modificato. Lo script, tuttavia, è stato ancora modificato. E non funziona anche da console.

L'aggiornamento è attualmente online allo v2.wawolf.com, troverai tutto ciò di cui hai bisogno. Hotlink:Engine's code

+0

Può essere una domanda sciocca; ma sei sicuro che jquery sia stato caricato? – seand

+0

jquery viene sempre caricato perché si avvia/carica main.php che carica jquery e altri script. Su questi altri script è page.js che carica l'url dell'ancora. –

risposta

3

Ho appena risolto il problema: quando viene caricato tutto il documento, $ (function() {}) non funzionerà di nuovo, quindi non verrà eseguito lo script che utilizza $ (function() {}). L'ho rimosso da tutti i miei script chiamati secondari e ora tutto funziona perfettamente!

1

potrebbe essere solo un problema di ordine di caricamento.

provare incapsulare il JS carico in una funzione onload

$(window).load(function(){ 
    //get script loads here 
} 

o

$(document).ready(function() { 
    //get script loads here 
} 

A volte mi utilizzare uno dentro l'altro per lo script JS dinamico che deve essere caricato per ultimo.

+0

Ci ho pensato, ma uso sempre $ (function() {}) (equivalente) su tutti i miei script, è un riflesso. Pherpap il problema deriva dal fatto che il documento è carico, ma non il documento della richiesta quando si aggiorna la pagina corrente. Cercherò di chiamare gli script dopo l'aggiornamento e Itell you. –

+0

no, non cambia nulla –