2013-04-02 13 views
8

silinir karakterini alın.i metin alanına kullanıcı tarafından seçilen ifadeleri göstermek istiyorum çünkü bir <code>content editable div</code> kullanıyorum içerik düzenlenebilir div

backspace veya delete düğmesi ile deleted'un ne olduğunu bilmek istiyorum.

o jquery veya javascript karakterin bilmek mümkün mü?

GÜNCELLEME

tüm cevap delected karakteri hakkında bir basılan tuşu takip etme ile ilgili olduğundan, bu durum, bütün bir kopya olarak değil.

+0

@Blazemonger Bu başarılabilir olup olmadığını bilmiyorum? –

+0

Backspace düğmesini yakalamaya çalışabilirsin ... [http://stackoverflow.com/questions/4935655/how-to-trap-the-backspace-key-using-jquery](http://stackoverflow.com/ soruları/4935655/nasıl yapılır-trap-the-backspace-key-using-jquery) – Joseph

+0

@Joseph Ben sadece basılı anahtarı takip edebilirdim. Ama nasıl silinen bir karakter var –

cevap

3

Temiz bir çözümüm yok.

var lastText = $('#editable').text(); 
$('#editable').keyup(function(event){ 
    if (event.which==8 || event.which==46) { 
    var newText = $(this).text(); 
    for (var i=0; i<lastText.length-1; i++) { 
     if (lastText[i]!=newText[i]) { 
     console.log("char '" + lastText[i] + "' was removed at index "+i); 
     lastText = newText; 
     return; 
     } 
    } 
    } 
}); 

Demonstration

+0

Bu tam olarak seni geri silme üzerinde demo ve basın tıklarsanız. – Ryan

+0

approched gerekecekti sorunu düşünüyordum nasıl Son karakter, işe yarıyor - ama sonra herhangi bir typi yaparsanız Belgedeki herhangi bir yerde, bir sonraki backspace yanlış karakteri rapor edecektir. – NibblyPig

+0

@SLC Üzgünüm ama sorununuzu yeniden oluşturamıyorum. –

0

Ne istediğini yapmak preventDefault() işlevini kullanabilirsiniz: Eğer geri tuşuna vurursan Ama bu size kaldırılan kömürü gösterir.

İşte <textarea> kullanarak bir örnektir ama herhangi elemana uzatmak olmalıdır:

http://jsfiddle.net/4dThe/

$('#txtArea').keydown(function(e) { 

    if (e.which == 8) 
    { 
    var value = $(this).val(); 
    var lastchar = value.substring(value.length - 1); 

     alert("Last character is: " + lastchar); 
     $(this).val(value.substring(0, value.length - 1)); 
     e.preventDefault(); 
    } 

}); 

preventDefault() yöntem blokları geri silme işlemi, bu nedenle son karakter silinmez. Son karakterin ne olduğunu görebilir ve geri adım işlemini kendiniz gerçekleştirebilirsiniz.

Doğru karakteri silmek için geçerli imleç konumunu tespit etmek için yukarıdaki örneği değiştirmek gerekir ancak bu bir başlangıç.

+2

Ve kaldırılan karakter sonuncu değilse? –

+0

Son paragrafta dediğim gibi, tüm işi ben yapmıyorum;) – NibblyPig

+2

Cidden ... Burada sadece zorluk, * karakterin kaldırıldığını bulmaktaydı. –