script non compatibile con IE

pietrop

Nuovo Utente
1 Ott 2012
8
0
0
Ciao a tutti,

scusati tanto, ma io di javascript ci capisco davvero poco.
Sapete dirmi come mai questo codice si comporta perfettamente in chrome e firefox e non IE?
Codice:
<script>
    $(function ($) {
        $.fn.fixedMenu = function () {
            return this.each(function () {
                var menu = $(this);
                //close dropdown when clicked anywhere else on the document
                $("html").click(function () {
                    menu.find('.active').removeClass('active');
                });
                menu.find('ul li > a').bind('click', function (event) {
                    event.stopPropagation();
                    //check whether the particular link has a dropdown
                    if (!$(this).parent().hasClass('single-link') && !$(this).parent().hasClass('current')) {
                        //hiding drop down menu when it is clicked again
                        if ($(this).parent().hasClass('active')) {
                            $(this).parent().removeClass('active');
                        } else {
                            //displaying the drop down menu
                            $(this).parent().parent().find('.active').removeClass('active');
                            $(this).parent().addClass('active');
                        }
                    } else {
                        //hiding the drop down menu when some other link is clicked
                        $(this).parent().parent().find('.active').removeClass('active');

                    }
                })
            });
        }
    })(jQuery);   
</script>
grazie mille in anticipo per l'aiuto
 
Ultima modifica di un moderatore:
Da errore

Riga: 1
Errore: Prevista funzione

Secondo me quell'effetto riesce meglio solo con i css
 
Da errore

Riga: 1
Errore: Prevista funzione

Secondo me quell'effetto riesce meglio solo con i css

Allora premesso che sono poco esperto...
Pensavo che il problema derivasse dal javascript, ma in realtà no.

Infatti tutta la parte di menu e' gestita da css, la parte java serve solo per le drop down list, che ho rimosso. Dopo essermi scervellato a capire dove fosse l'errore in java, sono passato ad esaminare tutto il css. alla fine mi sono accorto di aver rimosso una stringa dalle pagine htm, che fa riferimento dtd da usare per il css. Ecco la stringa in questione:

Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

la cosa che non sapevo che IE ha bisogno di puntare ad un dtd per interpretare il css, mentre chrome e firefox probabilmente hanno qualche impostazione di default.

con la soluzione ho rimosso anche tutta la parte di javascript che non serviva e adesso le pagine sono anche più snelle.

Anyway, grazie mille per l'aiuto!

PS
spero di aver citato il codice in maniera corretta stavolta :D
 
Pensavo di aver risposto, ed invce...

ok ci riprovo.

Ho risolto. in effetti il problema non era dovuto al javascript. ieri ho passato la serata ad analizzare il javascript che alla fine ho capito serviva solo per il drop down menu, cosi non usandolo l'ho rimosso dal sito (per il momento). allora sono passato ad esaminare il css, se ci fossero dei tag che IE non "digerisce". ma anche li un buco nell'acqua. Poi mi e' venuto il lampo di genio e sono andato a vedermi la prima versione del sito che avevo fatto, dove pensavo che funzionasse. Ed infatti era cosi'.

confrontando il css erano in pratica idendici per quanto riguarda il codice. poi dando un occhio anche alle pagine htm, subito ho notato che avevo rimosso la stringa di riferimento per il css. Non immaginavo che IE avesse bisogno di puntare ad un DTD per interpretare il codice css, anche perché Chrome e Firefox non ne hanno bisogno; probabilmente avranno un settings di default.

ecco la stringa incriminata:
Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

anyway, grazie mille per l'aiuto!

ciao
 
Ci sono le risposte
ora le abilito

per qualche motivo che ignoro sono state messe in attesa dal software che gestisce questo forum
 

Discussioni simili