Существенным битом является JavaScript:
function encodeInput(editor) {
theText = editor.val();
theText = theText.replace(/\*\*\*(.*?)\*\*\*/, '<strong><i>$1</i></strong>', 'g');
theText = theText.replace(/\*\*(.*?)\*\*/, '<strong>$1</strong>', 'g');
theText = theText.replace(/\*(.*?)\*/, '<i>$1</i>', 'g');
console.log(theText);
$('#preview').html(theText);
}
$(function() {
$editor = $('#editor');
$editor.keyup(function() {
encodeInput($(this));
});
});
Протестировано и отлично работает (мне нужна часть \*\*\*
или она не работает).
В любом случае, на основной курс
Проблема
Поскольку я использую keyup
, script не очень отзывчив (например, он только "запускает", как только пользователь отпустил ключ). Я хочу, чтобы он больше походил на редактор здесь, на StackOverflow, где нажата клавиша, и ответ происходит неточно.
Я попытался использовать keydown
и keypress
, но кажется, что атрибут val()
не обновляется при запуске, поэтому я не могу знать обновленное значение.
Короче
Как я могу сделать его более отзывчивым, так что, когда пользователь нажал клавишу, предварительный просмотр будет автоматически обновлен?