Как я могу реализовать эту модель взаимодействия с JQuery? - PullRequest
2 голосов
/ 18 июля 2010

С помощью jQuery я заинтересован в создании следующей модели взаимодействия.

  1. Когда пользователь печатает на странице, jQuery всегда замечает три!, "!!!" набирается подряд, чтобы иметь возможность что-то с этим сделать.

  2. Заметив три!, "!!!", оберните предыдущее предложение (находя последний период из того места, где пользователь в данный момент печатает, и оборачивая <span class=Important>

Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 18 июля 2010

Это должно работать. Я настроил его как живой обработчик событий (чтобы он работал для элементов, динамически добавляемых на страницу), но вы также можете использовать ту же функцию, что и обычный обработчик ключей, на любом элементе textarea или input. .

Он проверяет, заканчивается ли текущее значение элемента !!! и, если это так, выполняет замену, оба с использованием простых регулярных выражений.

$("input,textarea").live("keyup", function() {
    var $this = $(this);
    var value = $this.val();

    if (/!!!$/.test(value)) {
        $this.val(value.replace(/(\.?)([^.]+?\.?\s*)!!!$/, '$1<span class="important">$2</span>'));
    }
});
0 голосов
/ 18 июля 2010

Как бы мне не хотелось говорить, что jQuery не годится для чего-то - возможно, такая логика лучше обрабатывается на сервере. Если они не набирают текст в редакторе HTML, где вновь вставленные теги span невидимы для пользователя, может быть немного неприятно печатать в текстовом поле / текстовом поле и внезапно увидеть группу HTML, вставленную в мой комментарий.

...