944 messaggi dal 11 febbraio 2013
ho provato ma se sostituisco al codice un id reale tutto funziona

forse il problema è qui

positionDiv = $(scrollToId);
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
con CTRL+U vedi il sorgente della pagina, non il DOM. Il sorgente è solo il contenuto testuale HTML che hai ottenuto dal server. Ogni modifica apportata in seguito al DOM non sarà visibile lì.

Per vedere il DOM, fai tasto destro -> Ispeziona elemento. Oppure premi F12 per far apparire gli strumenti di sviluppo del browser.


forse il problema è qui
positionDiv = $(scrollToId);


Sì, va messo un hash davanti per selezionare un elemento in base al suo id.
positionDiv = $("#" + scrollToId);


E poi, a proposito di questo:
$(".articoli").html($(".articoli").html() + "<hr>" + data.d);

Non è molto efficiente riscrivere completamente l'html di un elemento, soprattutto quando comincia a contenere parecchi elementi. Usa il consiglio di Pietro con i 2 append.

ciao,
Moreno
Modificato da BrightSoul il 21 febbraio 2018 20.28 -

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Grazie del chiarimento
ho impostato append (come avevo prima)

Avevo provato a modificare il selettore $('#' + valore); ma ottengo sempre
jQuery.fn.init {}

ho provato anche $('#' + valore);
e anche
$('.articoli').find('#' + valore);
Modificato da jjchuck il 21 febbraio 2018 20.54 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ma questo console.log, ti mostra il valore che ti aspetti di trovare?
console.log(sessionStorage.getItem('productSelected'));

Esiste già nella pagina un elemento che porta quell'id o è un elemento che andrai a caricare via richiesta Ajax?
Se è un elemento che andrai a caricare, tieni presente che questo Load è asincrono:
 Load(0, sessionStorage.getItem('numberProductsShowed'));

E quindi, quando la successiva riga viene eseguita, il caricamento dal server è ancora in corso. Se l'elemento non esiste (ancora) è perché devi aspettare che la richiesta Ajax si sia conclusa.

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Si l'elemento lo mostra...ho messo il console log apposta

E nella pagina l'elemento 'visitato' cè

Avevo pensato al sincronismo mettendo un settimeout...
ma non so se è quello che faresti tu :)

anzi sicuramente non lo sarà :)
944 messaggi dal 11 febbraio 2013
Grazie Moreno
il problema era proprio il sincronismo!
...ci ho messo un po...:)
ho risolto cosi

 $(document).ajaxStop(function () {
     
        if (sessionStorage.getItem('productSelected') != null) {
            var str = sessionStorage.getItem('productSelected');
            scrollToId = $('.articoli').find($('#' + str));

            if (scrollToId.length) {
                $("html, body").animate({ scrollTop: scrollToId.offset().top }, 1000);
            }
        }
    });
11.886 messaggi dal 09 febbraio 2002
Contributi
Ok, ottimo

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.