Я работаю над небольшим приложением чата. Я хочу реализовать смайлики там, поэтому, когда я нажимаю на какой-нибудь смайлик, он появляется в текстовой области, где пользователь вводит свое сообщение, и когда пользователь нажимает на кнопку выбора, я хочу, чтобы смайлики появлялись в div, содержащем разговор.
После некоторых обходных путей я пришел к мысли, что замена textarea на div contenteditable = "true"
не работает так хорошо, поэтому я обернул определенное имя смайлика ':' вроде: wink: в текстовой области, но все же мне нужно заменить: wink: реальным диапазоном, содержащим изображение в качестве фона.
Проблема в том, что я не вижу способа сделать это динамически, но делаю каждый по одному.
например:
if ($('.line:contains(":wink:")').length > 0) {
var oldLineHTML = $('.line:contains(":wink:")').html();
$('.line:contains(":wink:")').html(oldLineHTML.replace(/:wink:/gi, '<span class="wink></span>"'));
У меня много смайликов, поэтому выполнение этой очень ресурсоемкой функции обойдется мне дорого, а также вызовет массу проблем во время обслуживания.
Как я могу сделать это динамически? Или, может быть, у вас есть лучшее решение, которое потребует изменения дизайна ... Я отвечу, если это потребуется.
спасибо
}