2009-09-03 13 views
7

J'utilise MarkItUp (http://markitup.jaysalvat.com/) et je n'arrive pas vraiment à comprendre comment le mettre à jour continuellement lorsque le caractère est tapé (ou même lorsqu'un 'espace' est rencontré). Par défaut, il n'actualise le volet d'aperçu que lorsque la touche Entrée est activée.MarkItUp! actualisation de l'aperçu continu sans appuyer sur Entrée

Est-il possible de personnaliser ce comportement? La documentation mentionne une clé previewAutoRefresh, mais le réglage de la mise à jour-sur-entrer, pas plus rapide.

Merci!

Répondre

2

Utilisation comme dans this question la même technique.

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

Notez que cela envoyer une nouvelle demande à votre serveur Web sur chaque pression de touche, donc si vous avez beaucoup d'utilisateurs, ce sera beaucoup de hits.

-2

previewAutoRefresh est activé par défaut.

L'aperçu est actualisé lors de l'insertion d'un balisage (ou touche Entrée enfoncée). Le contenu de l'aperçu est envoyé par ajax à un analyseur côté serveur pour afficher le langage de balisage (textile, markdown, bbcode, etc.). Faire cette opération à chaque coup de clé est presque impossible (lent et lourd).

Le markItUp! aperçu intégré est juste une aide. Vous pouvez le désactiver et coder votre propre aperçu, en utilisant un script côté client (Showdown par exemple) comme vous le feriez avec une zone de texte régulière.

:)

+0

vous avez décrit MarkItUp. C'est sur le site Web. Comment cela aide-t-il? – psychotik

2

très tard, mais une meilleure solution est de commencer une minuterie (1 sec) pour chaque pression de touche pour que l'aperçu se fait qu'une seule fois, lorsque l'utilisateur fait une pause (cet extrait de code utilisé plugin timer JQuery):

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

Pour plus de détails, vous pouvez voir l'excellent article sur le codage de la roue Syntax highlighting qui parle de textarea preview.

+0

Cela lance: Uncaught TypeError: Objet [object Object] n'a pas de méthode 'stopTime' (et j'ai jQuery timer plugin -> https://raw.github.com/jbrooksuk/jQuery-Timer-Plugin/master/jquery.timer .js – bluszcz

+0

J'utilise un ancien plugin jquery timer, j'ai copié le script ici http://pastebin.com/g2dY6hzs –