1

为了突出汉字之间的间距,我有这个代码

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>

4

1 回答 1

3

您可以改为(或另外)使用该keyup事件,如下所示:

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

.bind()也可以采用空格分隔的多个事件名称,因此也可以说明这一点,减少一些代码:)

额外的好处:因为它为您获得了 HTML 编码,作为另一个例子,.text('&')一个元素实际上会&amp;在 HTML 中呈现:)

于 2010-08-05T17:14:52.253 回答