2010-08-05 85 views
1

爲了突出中國文字之間的間距我有了這個代碼jQuery change()在按空格時不觸發?

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>

回答

3

可以使用keyup event而不是(或另外),如下所示:

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

.bind()也可以採取用空格隔開的多個事件名稱,所以示出了爲好,剃鬚一些代碼關:)

對於獎金:因爲它可以讓HTML編碼爲你,作爲另一個例子,.text('&')一個元素實際上在HTML :)

+1

注意KEYUP將觸發對非打印渲染&amp;所以(在這種情況下它是可以的)有時是一個好主意,將它過濾到接近printables的東西,如果這是你感興趣的。 – 2010-08-05 17:18:30

+0

這是完美的,當我可以接受時(8分鐘) – Moak 2010-08-05 17:21:46