我使用 a 是content editable div
因为我想在文本区域中显示用户选择的表情符号。
我想知道按钮character
是deleted
什么。backspace
delete
是否可以用jquery
or知道字符javascript
?
更新
这根本不是重复的,因为所有答案都是关于如何跟踪按下的键而不是关于选中的字符。
我使用 a 是content editable div
因为我想在文本区域中显示用户选择的表情符号。
我想知道按钮character
是deleted
什么。backspace
delete
是否可以用jquery
or知道字符javascript
?
更新
这根本不是重复的,因为所有答案都是关于如何跟踪按下的键而不是关于选中的字符。
我没有干净的解决方案。但是,如果您按退格键,这个会显示已删除的字符:
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;
}
}
}
});
您可以使用该preventDefault()
功能做您想做的事。
这是一个使用 a 的示例,<textarea>
但它应该扩展到任何元素:
$('#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()
方法阻止退格操作,因此不会删除最后一个字符。然后您可以看到最后一个字符是什么,并自己执行退格操作。
您需要更改上面的示例以检测当前光标位置以删除正确的字符,但这是一个开始。