2013-05-21 16 views
6

Ich versuche ein "Änderungsprotokoll" zu meiner jQuery-Anwendung hinzuzufügen. Im Falle eines Fehlers sollte der Benutzer die Möglichkeit haben zu sehen, was schief gelaufen ist. Dafür habe ich ein Pop-up, mit einem Textbereich umgesetzt (siehe Code unten)Nach oben scrollen von jQuery-Textbereich

 <!-- DIALOG Start--> 
     <div data-role="popup" id="popupLog" data-overlay-theme="a" data-theme="b" style="max-width:400px;" class="ui-corner-all"> 
     <div data-role="header" data-theme="b" class="ui-corner-top"> 
     <h1>Logg-Einträge:</h1> 
     </div> 
     <div data-role="none" data-theme="b" class="ui-corner-bottom ui-content"> 
     <textarea style="height: 120px; max-height: 120px" readonly="readonly" data-mini="true" cols="40" rows="8" id="popupTextArea"></textarea> 
     <a href="#" data-role="button" data-inline="true" id="btn_textArea" data-rel="back" data-theme="c">OK</a>  
     </div> 
     </div> 
     <!-- DIALOG End--> 

Diese popUp mit Daten gefüllt ist, und geöffnet, wenn eine bestimmte Schaltfläche klicken:

$('#showLog').click(function() { 
    $("#popupDialog").popup("close"); 
    // populate the textArea with the text 
    $("#popupTextArea").text(sessionStorage.getItem("logStack")); 
    // open popUp after a specific time 
    setTimeout(function(){$('#popupLog').popup('open'); 
     }, 1000); 
}); 

Alle Funktionen funktionieren gut Bis hierhin. Das Problem ist: Wenn der Benutzer in der Textfläche nach unten scrollt, das PopUp schließt und es wieder öffnet, ist die Position des Scrollers immer noch gleich - zum Beispiel scrollt der Benutzer nach unten, schließt das PopUp und öffnet es wieder - das popUp wird unten in der TextArea angezeigt. Aber ich möchte immer den oberen Teil des Textfelds erreichen, wenn das popUp wieder geöffnet wird. Um dies zu realisieren, habe ich ein „Ok“ -Button in diesem popUp wie folgt implementiert, die die popUp und stellen Sie die scrollingTop auf 0 schließt:

$('#btn_textArea').click(function() { 
// Setting position of the textArea to "0" -> But doesn't work..... 
    $('#popupTextArea').scrollTop(0); 
    ); 
}); 

Ich struggeling an dieser Stelle, da das Auftreten von Die textArea ist immer noch gleich. Brauche ich eine Aktualisierung oder etwas? Ich würde für jede Hilfe sehr dankbar ....

Antwort

1

Sie könnten die „popupbeforeposition“ -Ereignis verwenden, um die scrollTop Eigenschaft des Textbereich zu manipulieren:

$(document).ready(function(){ 

    $("#exampleWindow").on("popupbeforeposition", function(evt, ui){ 

     $(this).find("textarea").scrollTop(0); 

    }); 

}); 

Hier haben Sie eine jsfiddle mit einem Beispiel: http://jsfiddle.net/elchininet/eBp7S/

Verwandte Themen