我正在尝试在内容可编辑的div中缩进和缩进。缩进工作正常,但缩进执行命令不起作用。我有一个最后一个键缓冲区,适用于其他键盘快捷键,但不适用于这个。感谢您的任何帮助。
if (keyCode == 9) { /* indent */
event.preventDefault();
document.execCommand("indent");
}
if(keyCode == 9 && lastkey == 16){
event.preventDefault();
document.execCommand("outdent");
}
您应该使用if / else if
,以便只运行两个命令中的一个,并且还将lastKey
检查作为该系列中的第一个命令
我不确定您的lastKey
变量是如何工作的,所以我添加了event.shiftKey
用于演示
$(".myClass").on("keydown", function(event) {
if (event.keyCode == 9 && event.shiftKey /* lastKey */ ) {
event.preventDefault();
document.execCommand("outdent");
} else if (event.keyCode == 9) { /* indent */
event.preventDefault();
document.execCommand("indent");
}
});
.myClass {
display: block;
height: 300px;
width: 500px;
border: 1px solid #bfbfbf;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="myClass" contenteditable="true"></div>