Sponsor-Board.de
[jScrollPane] autoReinitialise

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: [jScrollPane] autoReinitialise (/showthread.php?tid=52624)


[jScrollPane] autoReinitialise - Freddy - 21.12.2014 12:35

Schönen Mittag zusammen,

ich habe folgendes Problem mit jScrollPane und hoffe, dass mir hier jemand helfen kann, da ich nicht mehr weiter komme.
Ich habe auf meiner Testseite bisher 2 div.scroll-pane, wobei das eine einwandfrei funktioniert, das andere wiederum gar nicht.

Im <head>:

PHP-Code:
$(function(){
    $(
'.scroll-pane').jScrollPane({autoReinitialisetruecontentWidth'0px'});
}); 


In einem div.scroll-pane ist Teamspeak per tsviewer.com eingebunden, sprich, nachdem die Seite geladen hat, wird erst der Teamspeak hineingeladen und jScrollPane reinitialisiert sich automatisch, wie in den Einstellungen festgelegt.

Nun habe ich ein weiteres .scroll-pane, in das Chatnachrichten geladen werden:

PHP-Code:
$(document).ready(function(){
    $(
"body").on("submit""#chatbox-form", function(e){
        
e.preventDefault();

        $.
post($(this).attr('action'), $(this).serialize(), function(response){
            if(
response['success']){
                $(
"#chatbox-form #message").val('');
                $(
"#chatbox-form .chars-left").html($("#chatbox-form #message").attr('maxlength')+' / '+$("#chatbox-form #message").attr('maxlength'));

                
loadMessages();
            }
        });
    });
        [...]
    function 
loadMessages(){
        
//$("#chatbox-items").jScrollPane().data().jsp.destroy();

        
$("#chatbox-items").load('http://localhost/blackdivision.de/public/chatbox?limit=15', function(){
            
//$("#chatbox-items").jScrollPane();
        
});
    }

    
// load messages on document ready
    
loadMessages();

    
// load messages all X seconds
    
setInterval(function(){loadMessages();}, 15000);
}); 


Wenn ich dem div#chatbox-items die Klasse .scroll-pane wegnehme und in der JavaScript-Funktion loadMessages() die momentan auskommentierten 2 Zeilen wieder mit rein nehme, funktioniert es, allerdings sehr unschön, da erst der komplette Inhalt über div#chatbox-items hinausgeht und mit Verzögerung jScrollPane reinitialisiert.

Ich hatte das allergleiche Problem schon mal, ich komme aber einfach nicht mehr darauf, wie ich es gelöst habe -.-

Damit ihr euch selbst ein Bild machen könnt: [Link: Registrierung erforderlich]
Benutzer: [email protected] / Passwort: passwort
zum Testen der Chatbox.

MfG
Freddy


RE: [jScrollPane] autoReinitialise - Aaron - 21.12.2014 13:20

Versuch mal:

Code:
var api = $('.scroll-pane').jScrollPane({contentWidth: '0px'});


und nach dem laden:

Code:
api.reinitialise();




RE: [jScrollPane] autoReinitialise - Freddy - 21.12.2014 13:38

Hi AAron,

vielen Dank für Deine Antwort, leider hat es mit deinem Ansatz nicht funktioniert, dafür habe ich die Lösung gerade selbst gefunden... Tongue

PHP-Code:
function loadMessages(){
    var 
pane = $('#chatbox-items')
    
pane.jScrollPane({autoReinitialise:true});
    var 
chatboxItems pane.data('jsp').getContentPane();

    
chatboxItems.load('{{ URL::route('chatbox.index', ['limit'=>'15']) }}');


...natürlich von der offiziellen Seite, ein Beispiel...

MfG
Freddy

//kann geschlossen werden Smile