2013-05-21 3 views
6

Sto tentando di aggiungere un "registro modifiche" alla mia applicazione mobile jQuery. In caso di errore, l'utente dovrebbe avere la possibilità di vedere cosa è andato storto. Perciò ho implementato un pop-up, con una textarea (vedi codice qui sotto)Scorrere verso l'alto di jQuery-Textarea

 <!-- 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--> 

Questo popup viene riempito con i dati, e ha aperto facendo clic su un pulsante specifico:

$('#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); 
}); 

Tutte le funzionalità sta lavorando bene fino a questo punto. Il problema è: quando l'utente scorre verso il basso all'interno della textarea, chiude il pop-up e lo riapre, la posizione dello scroller è sempre la stessa - ad esempio l'utente scorre verso il basso, chiude il pop-up e lo riapre - il popUp sarà nella parte inferiore dell'area textarea. Ma mi piacerebbe ottenere sempre la parte superiore della textarea, quando il pop-up è di nuovo aperto. Per realizzare questo, ho implementato un "Ok" -Button in questo popup come segue, che chiude il popup e impostare lo scrollingTop a 0:

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

sto struggeling a questo punto, perché l'aspetto di la textArea è sempre la stessa. Ho bisogno di un aggiornamento o qualcosa del genere? Sarei molto grato per ogni aiuto ....

risposta

1

è possibile utilizzare l'evento "popupbeforeposition" per manipolare la proprietà scrollTop del textarea:

$(document).ready(function(){ 

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

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

    }); 

}); 

Qui si dispone di un jsfiddle con un esempio: http://jsfiddle.net/elchininet/eBp7S/