Ciao a tutti.. :-)Come da titolo del topic, scrivo in quanto ho un "problemone" con la funzione .load()Probabilmente è già stato trattato in mille salse tale argomento,in generale sul web, e anche qui(ho trovato solo un topic) ma onestamente,non ho capito se esiste una soluzione o meglio dove sbaglio! :D
Allora sto lavorando al progetto di un sitarello web in php.Le pagine hanno una struttura fissa(header con logo, data e menu) , il footer con l'intestazione e un div contenuto.Tramite un semplice switch case in php nella index, controllo quale azione del menù e stata richiesta e in base ad essa carico la pagina che mi interessa.E fino a qui tutto bene.. :DPer migliorare il progetto visto che si parla di inserire un suono tramite un palyer in flash ed evitare quindi che al cambio di ogni pagina il suono riparta eper approfondire le mie conoscenze da un mesetto mi sono messo a studiare jquery,un po di concetti base li ho appresi sul web, un po qui da voi e fino ad acquistare un manuale! :D Seguendo le varie parti e suggerimenti,con poche righe di codice, devo dire che si possono davvero fare delle cose spettacolari con questo FrameWork! ;) quindi era mio interesse continuare a studiarlo.. :-)
Arrivo al dunque :-) :In pratica ad un certo punto dell'implementazione, per mantenere fissa la struttura della pagina e cambiare solo il div del contenuto, mi sono affidato(come suggerito pressochè da tutti e tutto) alla funzione .load() caricando all'interno del div "contenuto" la pagina relativa alla voce del menù cliccata.E fin qui tutto bene.Ora però iniziano i problemi, ovvero dal momento in cui uso tale funzione, tutti gli altri evenutali script non vengono più assolutamente eseguiti: Nessuno script viene eseguito dopo che è si è cliccato sulla voce del menu e quindi aver "attivato" lo script main che contiene il metodo .load().. ;(E' come se lo script che contiene la .laod() tenesse "occupato" il gestore degli eventi, ignorando tutti gli altri!Ecco la funzione main con la load:
$(document).ready(function(){ $('#menu a').click(function(){
var page = $(this).attr('href');
$('#switched').load(page+' #content');
return false; });
});
E se in una pagina che viene caricata inserisco anche solo un comando semplice come:
$(document).ready(function(){
$('#slide-div').click(function(){ alert('HAI CLICCATO SUl div slide-div'); });});
l'alert non viene visualizzato.tramite firebug ho notato che accanto alle voci del menu appare questo:events=Object { click={...}}handle=function()
mentre sul div al quale ho associato l'evento click(in questo caso div_test)
appare la scritta fxqueue[ ]
Premetto che il codice se eseguito in modo separato funziona senza problemi!!! :DOra so che forse ho scritto molto e che forse la risposta è un qualcosa che sta alle basi di Jquery, ma il mio intento è quello di capire il perchè di questo strano comportamento!Suggerimenti,critiche e osservazioni sono bene accette!!!!Grazie in anticipo,spero di non essere caduto nel banale ;)SalutiLorenzo