2009-09-03 17 views
7

Używam MarkItUp (http://markitup.jaysalvat.com/) i nie mogę naprawdę dowiedzieć się, jak zmusić go do ciągłego aktualizowania okienka podglądu w trakcie wpisywania każdego znaku (lub nawet w przypadku napotkania "spacji"). Domyślnie odświeża panel podglądu tylko po naciśnięciu klawisza Enter.MarkItUp! ciągłe odświeżanie podglądu bez uderzania Wpisz

Czy istnieje sposób dostosowania tego zachowania? Dokumentacja wspomina o kluczu previewAutoRefresh, ale ustawienie go powoduje, że aktualizacja nie jest szybsza.

Dzięki!

Odpowiedz

2

pomocą tej samej techniki jak w this question.

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

Zauważ, że ten wyśle ​​nowe żądanie do serwera internetowego na każdym naciśnięciem klawisza, więc jeśli masz wielu użytkowników, to będzie dużo trafień.

-2

previewAutoRefresh jest domyślnie włączony.

Podgląd jest odświeżany przy każdym wstawieniu znacznika (lub naciśniętym klawiszu Enter). Treść podglądu jest wysyłana przez ajax do parsera po stronie serwera, aby renderować język znaczników (tekstylia, przecinanie, bbcode itp.). Wykonanie tej operacji przy każdym naciśnięciu klawisza jest prawie niemożliwe (wolne i ciężkie).

The markItUp! Wbudowany podgląd to tylko pomocnik. Możesz go wyłączyć i zakodować własny podgląd, używając skryptu po stronie klienta (np. Showdown), tak jak w zwykłym obszarze tekstowym.

:)

+0

opisałeś czym jest MarkItUp. Jest na stronie internetowej. Jak to pomaga? – psychotik

2

Bardzo późno, ale lepszym rozwiązaniem jest, aby uruchomić stoper (1 sek) na każdym naciśnięciu klawisza tak, że podgląd odbywa się tylko raz, gdy użytkownik zrobić pauzę (ten fragment kodu używane wtyczki zegar JQuery):

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

Aby uzyskać więcej szczegółów, można zobaczyć doskonały post na kodowaniu koła Syntax highlighting mówi o podglądzie textarea.

+0

Powoduje: Uncaught TypeError: Object [object Object] nie ma metody "stopTime" (i mam wtyczkę jQuery timera -> https://raw.github.com/jbrooksuk/jQuery-Timer-Plugin/master/jquery.timer .js – bluszcz

+0

Używam starej wtyczki timera jquery, Skopiowałem skrypt tutaj http://pastebin.com/g2dY6hzs –