jQuery change () не запускается при нажатии пробела? - PullRequest
1 голос
/ 05 августа 2010

Чтобы выделить расстояние между китайскими иероглифами, я получил этот код

function replaceSpaces(){
    var segmented = $(this).val().replace(/\s/g, "<span>&emsp;</span>");
    $('#preview').html(segmented);
}
$(document).ready(function(){
    $('.tobesegmented').focus(replaceSpaces);
    $('.tobesegmented').change(replaceSpaces);
});

однако, НЕ вызывает изменение, когда я нажимаю пробел, только когда я добавляю текст. Есть ли способ вызвать replaceSpaces, когда человек нажимает клавишу пробела?

Бонус: Кроме того, почему <span>&amp;emsp;</span> становится <span>&amp;amp;emsp;</span>?

1 Ответ

3 голосов
/ 05 августа 2010

Вместо этого (или дополнительно) можно использовать keyup событие , например:

$('.tobesegmented').bind('focus keyup', replaceSpaces);

.bind() также может принимать несколько имен событий, разделенных пробелом, что также иллюстрирует это, сбивая немного кода:)

Для бонуса: поскольку он получает кодированный для вас HTML, в качестве другого примера, .text('&') на элементе будет фактически отображать &amp; в HTML :)

...