• Resolved JCLondon

    (@jclondon)


    Ciao ragazzi,

    I’m Italian but I’ll write in English as it might be helpful to more people.

    Thank you for your plugin first of all!
    I have implemented it on one of my pages and it works great. For each page change I load the main content via ajax and it all works well but when I go back to the page with the map, this doesn’t show up anymore.

    Is there a way to redraw the map on an ajax request?

    Grazie mille!

    Jeff

    https://wordpress.org/plugins/responsive-vector-maps/

Viewing 15 replies - 1 through 15 (of 16 total)
  • Plugin Author Enrico Urbinati

    (@enrico-urbinati)

    Ciao Jeff !

    What are you using to load the content via Ajax ?

    Grazie

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico,

    I’m using a standard jQuery .load() function.

    Here is the code I’ve implemented in my script file

    var $main = $("#content"),
    
    	init = function() {
    		$main.fadeTo(300, 1);
    	},
    
    	ajaxLoad = function(html) {
    	    document.title = html
    	    .match(/<title>(.*?)<\/title>/)[1]
    	    .trim()
    	    .decodeHTML();
    
    	    init();
    	},
    
    	loadPage = function(href) {
    		$main.fadeTo(300, 0, function(){
    			$(this).load(href + " #content>*", ajaxLoad);
    		});
    	};
    
    	$(window).on("popstate", function(e) {
    	    if (e.originalEvent.state !== null) {
    		    loadPage(location.href);
    	    }
    	});
    
    	$(document).on("click", "a", function() {
    	    var href = $(this).attr("href");
    
    	    if (href.indexOf(document.domain) > -1 || href.indexOf(':') === -1) {
    	    	history.pushState({}, '', href);
    	    	loadPage(href);
    	    	return false;
    	    }
    	});

    referencing to this https://rosspenman.com/pushstate-jquery/

    Grazie a te!

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico,

    Any news on this?

    Grazie

    Plugin Author Enrico Urbinati

    (@enrico-urbinati)

    Ciao Jeff,
    Purtroppo non ho avuto modo di controllare perche’ mi trovo nel bel mezzo di
    un trasloco… Una cosa che non augurerei nenche al mio peggior nemico.

    Prossima settimana dovrei essere un po’ piu’ libero per controllare questo
    problema!
    Problema che tra l’altro e’ stato segnalato da un altro utente.

    Nell’immediato posso suggerirti di dare una larghezza fissa alla mappa
    oppure
    lavorare sulle media queries per gestire la larghezza.

    Non ti preoccupare, tornero’ presto su questo problema.,
    Enrico

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico,

    Capisco e spero che il trasloco sia andato liscio!

    Grazie per il suggerimento ma non so se c’entra con il problema del caricamento della mappa dopo una richiesta di jquery load?

    Correggimi se sbaglio..!

    Nell’attesa di un tuo riscontro su questo problema che ormai mi ha messo alle strette, ti faccio i migliori auguri per la tua nuova abitazione!

    Grazie
    Jeff

    Plugin Author Enrico Urbinati

    (@enrico-urbinati)

    Ciao Jeff,

    sicuramente il problema è legato alla chiamata ajax.

    Lo script che gestisce la reattività della mappa incontra dei problemi al momento che la mappa viene caricata all’interno di un DOM già bello che formato…

    Bisognerebbe lavorare sulla funzione jQuery on() che reagisce anche su pezzi di codice “iniettati” tramite chiamate ajax.

    Molto probabilmente e più banalmente aggiornando la libreria di jVectorMap alla version 2.0.3 il problem aviene risolto.

    Ho bisogno di un pò di tempo e allora userò tutte le mie frecce per risolverlo.

    Grazie,
    Enrico

    Thread Starter JCLondon

    (@jclondon)

    Ok, grazie mille Enrico.

    Plugin Author Enrico Urbinati

    (@enrico-urbinati)

    Ciao Jeff,

    ho nuovamente del tempo da dedicare a RVM e vorrei approfondire questo problema.

    Come hai implementato lo script ? Esattamente cosa dovrebbe fare lo script ?

    Grazie

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico, grazie mille per trovare del tempo da dedicare alle risoluzioni dei problemi con il plugin!

    Lo script che uso e’ il seguente

    var $main = $("#content"),
    
    	init = function() {
    		$main.fadeTo(300, 1);
    	},
    
    	ajaxLoad = function(html) {
    	    document.title = html
    	    .match(/<title>(.*?)<\/title>/)[1]
    	    .trim()
    	    .decodeHTML();
    
    	    init();
    	},
    
    	loadPage = function(href) {
    		$main.fadeTo(300, 0, function(){
    			$(this).load(href + " #content>*", ajaxLoad);
    		});
    	};
    
    	$(window).on("popstate", function(e) {
    	    if (e.originalEvent.state !== null) {
    		    loadPage(location.href);
    	    }
    	});
    
    	$(document).on("click", "a", function() {
    	    var href = $(this).attr("href");
    
    	    if (href.indexOf(document.domain) > -1 || href.indexOf(':') === -1) {
    	    	history.pushState({}, '', href);
    	    	loadPage(href);
    	    	return false;
    	    }
    	});

    In pratica, RVM viene caricato bene on page load dentro il #content. Quando si clicca su qualsiasi link, il contenuto del #content viene aggiornato tramite la richiesta di ajax.
    Quando ritorno alla pagina con RVM, la mappa non carica e nella DOM risulta soltanto il div

    <div id="world-map-70" class="map-container rvm-map-container" data-ver="4.0"></div>

    completamente vuoto.
    Inoltre (e’ forse questo il problema da risolvere) i due script che dovrebbero trovarsi subito dopo il div map-container non ci sono.

    Spero di essere stato abbastanza chiaro..!

    Grazie mille per il tuo prezioso supporto.

    Plugin Author Enrico Urbinati

    (@enrico-urbinati)

    Ciao Jeff,

    ho installato lo snippet e l’ho richiamato dentro il tema di default di WP tewentyfifteen ma non riscontro questo problema. Anzi più correttamente mi sembra che le pagine non vengano proprio caricate tramite la chiamata ajax nonostante il tuo snippet sia caricato nella pagina.

    Potresti gentilmente mandarmi un link dove poter analizzare il problema ? Anche sulla posta info@responsivemapsplugin.com

    Grazie

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico,

    Ti ho mandato una email.

    Grazie!

    Plugin Author Enrico Urbinati

    (@enrico-urbinati)

    Ciao Jeff,

    credo di aver trovato una soluzione.
    Devo testarla e credo ci vorrà almeno una settimana prima di rilasciare una nuova versione che, tra le altre, risolva questo problema.

    A presto !

    Thread Starter JCLondon

    (@jclondon)

    Wow great news! Grazie Enrico 🙂

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico, ci sono buone nuove sul plugin?

    Nel frattempo, stavo pensando se era possibile richiamare in qualche modo l’inizializzazione della mappa nell’ajax callback..?

    Grazie ancora!

    Thread Starter JCLondon

    (@jclondon)

    Ciao Enrico, scusami se ti continuo a tartassare ma ormai sono agli sgoccioli con il progetto e ho bisogno di capire se devo cominciare a cercare qualche soluzione alternativa. Hai novita’ per il problema con il caricamento in ajax?

    Grazie mille

    Jeff

Viewing 15 replies - 1 through 15 (of 16 total)
  • The topic ‘Redraw map after ajax page change’ is closed to new replies.