按空格时jQuery change()不会触发?

时间:2010-08-05 17:13:54

标签: jquery html-entities

为了突出中文字符之间的间距,我有了这段代码

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

但是,当我点击空格键时,它会 NOT 触发更改,只有在我添加文本时才会触发。当一个人击中空格键时,有没有办法触发replaceSpaces?

奖励:另外,为什么<span>&amp;emsp;</span>成为<span>&amp;amp;emsp;</span>

1 个答案:

答案 0 :(得分:3)

您可以使用keyup event代替(或另外),如下所示:

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

.bind()也可以将多个事件名称用空格分隔,这样就可以解释掉一些代码:)

对于奖励:因为它为您编写了HTML编码,作为另一个例子,元素上的.text('&')实际上会在HTML中呈现&amp;:)