Visualizzazione risultati 1 fino 19 di 19

Discussione: Script jQuery - Firefox

  1. #1
    Guest

    Predefinito Script jQuery - Firefox

    Ciao a tutti,
    provando il mio sito con Firefox (di solito uso Chrome) ho notato che non interpreta tutto il codice javascript; infatti alcuni tasti, link etc... non funzionano (sono gestiti da jQuery).

    Eseguendo il debug del codice tramite alerts ho notato che il primo estratto di codice che da' fastidio a Firefox è il seguente:

    Codice:
    $('#imgOggi').click(function(){
    alert('A');
    $.ajax({
            url: 'do.php?fc=disegnaCalendarioInit',
    success: function(data) {
    alert('B');
    $('#calendarTable tbody').html(data);
    var data = new Date();
    mese=(data.getMonth()+1); anno=data.getFullYear();
    $('#calendarioData').html(mese+"-"+anno);
    $($('.datiCal')[0]).html(mese);
    $($('.datiCal')[1]).html(anno);
    aggiungiEventoCelle();
    $('.cellaConFocus').click();
    alert('C');
    }
    alert('D');
    });
    Gli alert A e D vengono visualizzati correttamente, mentre il B e C no.
    Sottolineo che se chiamata normalmente nella barra degli indirizzi, la pagina do.php?fc=disegnaCalendarioInit funziona benissimo restituendo il risultato previsto.
    Aggiungo infine che Chrome e Internet Explorer 9 non hanno problemi.
    Potete aiutarmi per favore? Questo problema rende inutilizzabile una bella stecca del sito con Firefox D:

    Grazie
    Ultima modifica di projectFede : 13-03-2012 alle ore 16.15.05

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Puoi indicare l'indirizzo della pagina in questione?

  3. #3
    Guest

    Predefinito

    La pagina appartiene ad un'area personalizzata per utente. Ho creato un'account apposta per voi. Basta andare nella pagina [[link rimosso da projectFede]] e autenticarsi indicando come email: altervista@supporto.forum e come password: entra. Bisogna poi cliccare sulla voce "Diario" del menu in alto.

    Dopo che il calendario che noterete sulla sinistra si sarà caricato (insieme al resto della pagina), verrà evidenziato il giorno di oggi. Cliccate ora su un qualsiasi altro giorno (dovrebbe a sua volta evidenziarsi). A questo punto cliccando sull'immagine di una casina del calendario dovrebbe evidenziarsi nuovamente il giorno di oggi. Il codice che vi ho mostrato sopra si occupa proprio di cosa fare al click di quella casina.

    Ciao e grazie mille per l'interessamento :-)
    Ultima modifica di projectFede : 13-03-2012 alle ore 20.10.14

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Dunque, la porzione di codice che hai riportato nel primo messaggio è monca, manca qualche pezzo o è sbagliata, inoltre nel sito ho trovato un altro codice:
    Codice:
     $('#imgOggi').click(function(){
    $.ajax({
            url: 'do.php?fc=disegnaCalendarioInit',
            
    }).done(function( msg ) {
      alert( "Data Saved: " + msg );
    });
    
    });
    Il problema è che è tutto male indentato e ciò complica la lettura.

  5. #5
    Guest

    Predefinito

    Scusa ma si vede che non si era salvata la modifica che avevo fatto.
    Il codice presente ora e che comunque non funziona è il seguente:

    Codice:
     
    $('#imgOggi').click(function(){
      alert('A');
      $.ajax({
        url: 'do.php?fc=disegnaCalendarioInit',
      }).done(function( msg ) {
        alert('B');
        $('#calendarTable tbody').html(data);
        var data = new Date();
        mese=(data.getMonth()+1); anno=data.getFullYear();
        $('#calendarioData').html(mese+"-"+anno);
        $($('.datiCal')[0]).html(mese);
        $($('.datiCal')[1]).html(anno);
        aggiungiEventoCelle();
        $('.cellaConFocus').click();
        alert('C');
      });
      alert('D');
    });
    Per l'indentazione mi scuso ma è un problema ristretto solo a questa porzione di codice e quelle vicine...avevo già in programma di dare una controllata generale all'indentazione (so che è molto importante :D)
    Ultima modifica di projectFede : 13-03-2012 alle ore 17.22.26

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Adesso a me pare tutto a posto, la richiesta viene effettuata e la funzione adibita al processo dei dati viene correttamente eseguita.
    Mi pare però di aver letto che il metodo done sia deprecato, verifica nella documentazione ufficiale.

  7. #7
    Guest

    Predefinito

    In effetti quello era l'unica funzione che utilizzava (chissà perchè) il metodo .done().
    Ho sistemato utilizzando success: all'interno di $.ajax();

    Ecco il nuovo codice che ora è presente nella pagina:

    Codice:
    $('#imgOggi').click(function(){
      alert('A');
      $.ajax({
        url: 'do.php?fc=disegnaCalendarioInit',
        success: function(msg){
          alert('B');
          $('#calendarTable tbody').html(data);
          var data = new Date();
          var mese = (data.getMonth()+1); anno=data.getFullYear();
          $('#calendarioData').html(mese+"-"+anno);
          $($('.datiCal')[0]).html(mese);
          $($('.datiCal')[1]).html(anno);
          aggiungiEventoCelle();
          $('.cellaConFocus').click();
          alert('C');
        }
      });
      alert('D');
    });
    Il problema però persiste. E' ovvio ormai che c'è qualcosa che non piace a Firefox perchè negli altri browser continua a funzionare tutto perfettamente. Non capisco davvero cosa ci sia che non vada. Ormai ho esperienza di alcuni anni ma Firefox non mi ha mai dato problemi.
    Ultima modifica di projectFede : 13-03-2012 alle ore 18.52.13

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Io con Firefox 10 non ho problemi, tutto viene eseguito correttamente. Hai provato a cancellare la cache? Controlla tramite la Console web (CTRL+SHIFT+K) o con Firebug se la richiesta asincrona viene effettuata.

  9. #9
    Guest

    Predefinito

    Ho fatto come dici. Risulta che la richiesta vada a buon fine (Status: 200 OK).
    Anche io ho Firefox 10.0.2 però come ti dico il problema persiste.
    Mi dici quindi che da te funziona correttamente? Cioè dopo aver selezionato un giorno differente (es. 25) e cliccando sulla casina ti si riseleziona il giorno corrente (13)? A me rimane evidenziato il 25.

    EDIT:
    Ho anche fatto il cCleaner eliminando così qualsiasi forma di cronologia / cookie ma il problema persiste.

    EDIT 2:
    Ho controllato con firebug. In effetti mi segnala che la richiesta dovuta al click sulla casina fallisce, ma non mi dice nulla circa il perchè (o forse non so io dove lo dice).

    In poche parole da' errore per qualsiasi funzione legata al calendario...tutto il resto funziona...non riesco proprio a capire il perché...e sta cosa mi da fastidio D: Spero che possiate aiutarmi in qualche modo.
    Ultima modifica di projectFede : 13-03-2012 alle ore 19.19.27

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Quello non l'ho controllato, non sono entrato nel merito del codice.
    Dunque, vedo che alla chiamata alla funzione html passi come parametro la variabile data, non dovrebbe essere msg?

  11. #11
    Guest

    Predefinito

    Grazie ho modificato. Ma il problema persiste.

    Il codice attuale (corretto) è questo:

    Codice:
    $('#imgOggi').click(function(){
                alert('A');
                $.ajax({
                  url: 'do.php?fc=disegnaCalendarioInit',
                  success: function(msg){
                    alert('B');
                    $('#calendarTable tbody').html(msg);
                    var data = new Date();
                    var mese = (data.getMonth()+1); anno=data.getFullYear();
                    $('#calendarioData').html(mese+"-"+anno);
                    $($('.datiCal')[0]).html(mese);
                    $($('.datiCal')[1]).html(anno);
                    aggiungiEventoCelle();
                    $('.cellaConFocus').click();
                    alert('C');
                  }
                });
                alert('D');
              });
    C'è anche da tenere conto che questa funzione ne richiama anche altre. In particolare "clicca" su .cellaConFocus . Questa azione secondo firebug non genera errore, ma se la fai in un account dove ci sono delle materie per i giorni scelti (ora tu vedi "Non hai nessuna materia questo giorno"), firebug dice che la funzione da errore (infatti invece di elencare le materia continua a dire "non hai nessuna....").
    Ultima modifica di projectFede : 13-03-2012 alle ore 19.50.27

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Hai svuotato la cache? A me pare funzionare, viene evidenziato il giorno corrente.

  13. #13
    Guest

    Predefinito

    Ho fatto tutto il possibile. Per curiosità allora...tu riesci anche a sfogliare le pagine del calendario? (cambiare mese cliccando sulle freccettine laterali).

  14. #14
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Sì, cambia il mese (non mi sono però messo a contare i giorni) e ritorna al mese corrente se attivo il pulsate con sopra raffigurata la casa.

  15. #15
    Guest

    Predefinito

    Non so cosa pensare...ho anche aggiornato firefox alla versione 11. Ho anche disattivato tutte le estensioni (escluso firebug ovviamente)....non so davvero cosa pensare. Boh

  16. #16
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Stai usando il debugger? Assicurati prima di tutto che il codice sia come dovrebbe essere e poi esegui le istruzioni passo passo per vedere dove sta il problema.

  17. #17
    Guest

    Predefinito

    debugger? scusa l'ignoranza...conosco come attivare quello di internet explorer ma non sapevo niente di quello di firefox...mi sai dire come lo posso aprire? grazie mille mi hai aiutato tantissimo ;) davvero grazie sei proprio disponibile :)

  18. #18
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Firefox non ne ha uno nativo, devi usare quello di Firebug, ci accedi dalla scheda Script.
    Per prima cosa verifica che il codice sia aggiornato, poi prova a mettere un breakpoint per esempio nella riga dell'alert B e prova un po' a vedere cosa accade.

  19. #19
    Guest

    Predefinito

    Per prima cosa verifica che il codice sia aggiornato, poi prova a mettere un breakpoint per esempio nella riga dell'alert B e prova un po' a vedere cosa accade.
    Non ho capito bene cosa devo fare però fa lo stesso :) L'importante è che gli altri lo riescano a vedere :)

    Grazie ancora

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •