2011-10-01 17 views
6

Come rimuovere jScrollPane utilizzando destroy. Si prega si può dare un semplice esempio per il seguente codice:Destroy jScrollPane

$(document).ready(function() { 
    $(".div1").jScrollPane(); 
}); 

<div class="div1">Some text...</div> 

risposta

0

è necessario chiamare jScrollPaneRemove() sul contenitore vale a dire $ jScrollPaneRemove(); ('myownscrollpane.').

+0

Penso jScrollPaneRemove() è stato rimosso in v2 – shr3jn

+0

sì, è stato rimosso in v2 .. se si utilizza 1.2 allora questo potrebbe aiutare. –

+0

come si usa destroy() ?? – shr3jn

1

La funzione vecchia jScrollPaneRemove() sembrava qualcosa di simile:

$.fn.jScrollPaneRemove = function() { 
    $(this).each(function() { 
    $this = $(this); 
    var $c = $this.parent(); 
    if ($c.is('.jScrollPaneContainer')) { 
     $this.css(
      { 
       'top':'', 
       'height':'', 
       'width':'', 
       'padding':'', 
       'overflow':'', 
       'position':'' 
      } 
     ); 
     $this.attr('style', $this.data('originalStyleTag')); 
     $c.after($this).remove(); 
    } 
    }); 
} 

Come si può vedere questo rimuove il css, o meglio lo imposta a nulla, e reimposta il tag di stile agli stili originali. Il problema è che originalStyleTag è anche rimosso, ma è usato per cercare qualcosa di simile:

$this.data('originalStyleTag', $this.attr('style')); 

Quindi è fondamentalmente un modo per memorizzare i vecchi stili prima JScrollPane si attiva e riapplicare quando JScrollPane viene rimosso.

Nella nuova versione è cambiato molto e non so se questo metodo funziona ancora, ma sembra che il modo per farlo sia archiviare i vecchi stili prima di eseguire jScrollPane, azzerando qualsiasi css impostato da jScrollPane e imposta il css bak sui vecchi stili per renderlo simile a prima di jScrollPane.

suona come un sacco da fare, e mi sarebbe seriamente prendere in considerazione cercando di rimozione di jQuery, vuoto, staccare o qualsiasi altra cosa sui diversi contenitori assocciated con JScrollPane, e se tutto il resto fallisce cercare di rendere il lavoro funzione di cui sopra nello script. Tutto quello che devi veramente fare è ottenere i vecchi stili in un array di dati prima di eseguire jScrollpane, e poi vedere se la vecchia funzione di rimozione funziona ancora.

11

Per distruggere un'istanza di JScrollPane (v2):

var element = $('.div1').jScrollPane({}); 
var api = element.data('jsp'); 
api.destroy();