2012-10-16 13 views
5

Ho un problema con Nice Scroll. Funziona bene, ma quando carico le immagini AJAX non funziona. È interessante notare che quando ridimensiono la finestra, apro Firebug o qualsiasi altra cosa, inizia a funzionare.NiceScroll non funziona dopo caricamento AJAX

Cosa posso fare per farlo automaticamente?

Ho provato:

setTimeout(function(){ 
    $("window").trigger('resize'); 
}, 0); 

Dopo che la funzione di caricamento AJAX, ma non funziona.

+0

Molto probabilmente, si inizializza bel rotolo prima che la A richiesta jax completa. Prova a inizializzare lo scorrimento piacevole nel gestore dell'evento di successo della richiesta Ajax. – Tariqulazam

+0

Il problema è che quando vado alla home page (dove Ajax è caricato) e funziona, ma quando vado alla pagina statica (come il contatto) e poi faccio clic sulla voce di menu che carica ajax, quindi non funziona il momento in cui cambio la dimensione della finestra. –

+0

È possibile includere il codice in un violino per noi da guardare? – Tariqulazam

risposta

12

Quando il contenuto delle modifiche del div è necessario chiamare il metodo di ridimensionamento di nicescroll.

$("your-div-name").getNiceScroll().resize() 

Tenere a mente se le dimensioni dell'immagine non è impostato in img tag, è necessario chiamare ridimensionare quando tutte le immagini sono a pieno carico.

0

Si prega di utilizzare il seguente codice per risolvere il problema. Funziona bene con carico Ajax.

$("MYSCROLLCONTAINERS").getNiceScroll().remove(); 
$("div[id^='ascrail']").remove(); 
jQuery("MYSCROLLCONTAINERS").niceScroll({ 
       autohidemode:false 
      }); 

Questo ha funzionato per me.

2

Oltre alla risposta di InuYaksa Se non si ha accesso all'implementazione, è possibile implementare la funzione mouseover sul content wrapper come soluzione alternativa.

// Call resize whenever mouse 
$("#scroll-area").mouseover(function() { 
    $("#scroll-area").getNiceScroll().resize(); 
}); 

da: http://eureka.ykyuen.info/2013/05/07/jquery-nicescroll-plugin-doesnt-work-for-dynamic-content/

Migliorata mouseover soluzione

//in the case of scrolling content loaded via AJAX 
    $(document).on('mouseover','#scroll-area', function() { 
     $(this).getNiceScroll().resize(); 
    }); 

Utilizzando viewport/avvolgere

$(document).on('mouseover','#scroll-wrap', function() { 

    var widget_wrap=$(this); 
    var widget_viewport=$(this).parent(); 

    widget_viewport.getNiceScroll(widget_wrap).resize(); 

}); 
Problemi correlati