Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Script mostra/nascondi non funziona più su ultima versione di JQuery

    Salve,
    sto aggiornando un sito wordpress in cui è stato implementato uno script che mostra/nasconde un div tramite jquery:
    codice:
        // Hide/Show project description
        $('.in-slide-content').hide();
        $('.blueprint').click(function(){
            $(".in-slide-content").slideToggle(200, "linear");
        });
        
        $('.maps').click(function(){
            $(".in-slide-content-map").slideToggle(200);
        });
    I div con classe in-slide-content e in-slide-content-map sono i contenitori da mostrare/nascondere, e le classi blueprint e maps sono i relativi pulsanti che attivano l'evento.

    Lo script gira su jQuery v1.10.2 ma ora che ho fatto l'aggionamento di WP la versione corrente di JQuery è la v1.11.3 e lo script non è più funzionante. La console del browser mi restituisce questo errore:
    Error: Syntax error, unrecognized expression: [name=]

    Come posso correggere questo script per renderlo nuovamente operativo anche per la nuova versione di JQuery?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io reinstallerei la v10, il codice che hai postato è corretto e dovrebbe essere compatibile
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    lo script si collega al jquery di wordpress, che viene aggiornato insieme a quest'ultimo... se anche sovrascrivessi il jquery con la precedente versione, verrebbe automaticamente sostituito al prossimo aggiornamento di wordpress, quindi il problema si ripresenterebbe.
    Se lo script è corretto, sai suggerirmi qualche metodo per approfondire la causa del problema?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non conosco wp e non lo uso, ma gli aggiornamenti sono obbligatori senza possibilità d'esclusione? Se è così mi pare una str***ata. A questo punto non so che dire l'errore è il codice che hai postato non hanno correlazioni. Verifica che non sia un bug wp e abbiano trovato soluzione oppure chiedi il trasferimento ad un moderatore di sezione nel forum CMS.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Gli aggiornamenti wp si possono disabilitare. Se vuoi ti sposto nella sezione CMS fammi sapere.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Quote Originariamente inviata da VinzClortho Visualizza il messaggio
    Salve,
    sto aggiornando un sito wordpress in cui è stato implementato uno script che mostra/nasconde un div tramite jquery:
    codice:
        // Hide/Show project description
        $('.in-slide-content').hide();
        $('.blueprint').click(function(){
            $(".in-slide-content").slideToggle(200, "linear");
        });
        
        $('.maps').click(function(){
            $(".in-slide-content-map").slideToggle(200);
        });
    I div con classe in-slide-content e in-slide-content-map sono i contenitori da mostrare/nascondere, e le classi blueprint e maps sono i relativi pulsanti che attivano l'evento.

    Lo script gira su jQuery v1.10.2 ma ora che ho fatto l'aggionamento di WP la versione corrente di JQuery è la v1.11.3 e lo script non è più funzionante. La console del browser mi restituisce questo errore:
    Error: Syntax error, unrecognized expression: [name=]

    Come posso correggere questo script per renderlo nuovamente operativo anche per la nuova versione di JQuery?

    Lo script che hai postato ha smesso di funzionare a causa dell'errore di sintassi mostrato nella console ma l'errore non avviene in quel punto, avviene in qualche altro script.

    Se clicchi l'errore nella console, il browser dovrebbe mostrarti il rigo in cui avviene l'errore.
    Posta la porzione di codice interessata ("name=" e il suo contesto), magari è un errore facilmente risolvibile, non aggiornare ulteriormente WordPress sarebbe un peccato e ti esporrebbe a vulnerabilità sulla sicurezza.

  7. #7
    Come dice giustamente lucavizzi, non aggiornare wordpress sarebbe un problema per altre ragioni. Ho scaricato e sostituito il jquery 1.11.3 minimizzato, con la medesiva versione estesa, sperando di avere un più preciso responso da parte del browser, che mi a riportato l'errore al rigo 1496:
    codice:
    Sizzle.error = function( msg ) {
        throw new Error( "Syntax error, unrecognized expression: " + msg );
    };
    Questo è il link al jquery 1.11.3 del sito ufficiale

    Gli aggiornamenti wp si possono disabilitare. Se vuoi ti sposto nella sezione CMS fammi sapere.
    Ho postato in questa sezione perchè penso sia un problema javascript. Se così non fosse, e dipendesse da wordpress, spostami pure nella sezione più adatta. Io al momento non saprei dire esattamente qual'è la causa, per cui mi affido a voi che siete più competenti.

  8. #8
    Faccio un breve riepilogo per chiarezza complessiva.
    Questo è lo script funzionante su jquery v1.10.2 ma non su v1.11.3:
    // Hide/Show project description
    $('.in-slide-content').hide();
    $('.blueprint').click(function(){
    $(".in-slide-content").slideToggle(200, "linear");
    });

    $('.maps').click(function(){
    $(".in-slide-content-map").slideToggle(200);
    });
    Alla pressione dei pulsanti con classe .bluprint o .maps lo script non si attiva e la console del browser restituisce l'errore:
    Error: Syntax error, unrecognized expression: [name=] jquery.js:1496:8
    ... che poi sarebbe:
    Sizzle.error = function( msg ) {
    throw new Error( "Syntax error, unrecognized expression: " + msg );
    };
    Questa è la versione estesa di jquery v1.11.3

    Tecnicamente, se lo script è corretto, non saprei dire perchè mi restituisce errore. Sarebbe decisamente più funzionale modificare lo script piuttosto che downgradare il jquery, per cui mi domando, come poter scrivere un script che, stante le attuale classi css, applichi il medefimo effetto funzionando sull'attuale versione di jquery.
    Vi ringrazio per ogni aiuto

  9. #9
    @VinzClortho: Posta il link alla pagina che genera l'errore

  10. #10
    Andando per tentativi ho capito che il problema nasceva da un conflitto tra lo script che ho precedentemente postato, ed un altro script, sempre dell'autore della pagina, utilizzato per lo scrolling via ancore:
    codice:
    $('a[href*=#]').click(function() {
            if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
                var $target = $(this.hash);
                $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
                if ($target.length) {
                    var targetOffset = $target.offset().top;
                    $('html,body').animate({scrollTop: targetOffset}, 'fast', 'linear');
                    return false;
                }
            }
        });

    Non ne capisco abbastanza per poterlo correggere, così l'ho direttamente sostituito con SmoothScroll e ora non ho più problemi.
    Per curiosità tecnica, mi sapete dire da cosa nasce il conflitto, e perchè non si presentava nella precedente versione di jquery?

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.