2009-09-03 22 views
7

Uso MarkItUp (http://markitup.jaysalvat.com/) e non riesco a capire come ottenerlo per aggiornare continuamente il riquadro di anteprima quando viene digitato ogni carattere (o anche quando viene rilevato uno "spazio"). Per impostazione predefinita aggiorna il riquadro di anteprima solo quando viene premuto il tasto Invio.MarkItUp! anteprima continua aggiornamento senza battere invio

C'è un modo per personalizzare questo comportamento? La documentazione menziona una chiave previewAutoRefresh, ma impostandola risulta nella cosa update-on-enter, non più veloce.

Grazie!

risposta

2

utilizzare la stessa tecnica come in this question.

$(".mymarkitupclass").keyup(function(){ 
    $('a[title="Preview"]').trigger('mousedown'); 
});

Si noti che questo invierà una nuova richiesta al server web su ogni pressione del tasto, quindi se avete un sacco di utenti, questo sarà un sacco di colpi.

-2

anteprimaAutoRefresh è attivato per impostazione predefinita.

L'anteprima viene aggiornata a qualsiasi inserimento di markup (o tasto Invio premuto). Il contenuto dell'anteprima viene inviato da ajax a un parser lato server per rendere il linguaggio di markup (tessile, markdown, bbcode ecc.). Fare questa operazione su ogni tratto chiave è quasi impossibile (lento e pesante).

markItUp! l'anteprima integrata è solo un aiuto. Puoi disabilitarlo e codificare la tua anteprima, usando uno script lato client (Showdown per esempio) come avresti dovuto fare con una normale textarea.

:)

+0

hai descritto cosa è MarkItUp. È sul sito web. In che modo questo aiuta? – psychotik

2

molto tardi, ma una soluzione migliore è quella di avviare un timer (1 sec) per ogni pressione di un tasto in modo che l'anteprima viene fatto solo una volta, quando l'utente fa una pausa (questo frammento di codice utilizzato JQuery timer plugin):

$('#markitup').keydown(function() { 
    $(this).stopTime(); 
    $(this).oneTime(1000, function() { $('a[title="Preview"]').trigger('mouseup'); }); 
}); 

Per ulteriori dettagli è possibile visualizzare l'eccellente post sulla codifica della ruota Syntax highlighting parlando di anteprima textarea.

+0

Questo genera: Uncaught TypeError: Object [oggetto Object] non ha alcun metodo 'stopTime' (e ho il plugin timer jQuery -> https://raw.github.com/jbrooksuk/jQuery-Timer-Plugin/master/jquery.timer .js – bluszcz

+0

Sto usando un vecchio plug-in timer jquery, ho copiato lo script qui http://pastebin.com/g2dY6hzs –

Problemi correlati