[英]How to delete inserted <span> on backspace?
用例:我为CKEditor构建了一个自定义的首字母缩写插件。 因此,用户可以通过对话框弹出窗口插入缩写词,也可以选择文本并将其转换为缩写词。 无论哪种情况,我都会添加<span>
来进行一些自定义样式和操作。
像这样的<span class="acronym">test</span>
问题:在编辑器中插入首字母缩写词后。 如果我使用退格键删除,请说我删除结束符</span>
并重新开始输入。 一切都添加到首字母缩写范围。
像这样的<span class="acronym">test typing something
我正在根据CKEditor创建跨度,因此即使删除了它,它也会添加一个结束符 </span>
。 因此,光标停留在范围内。
有没有一种方法可以检测和删除整个缩写范围。 是否删除了开始或结束跨度?
查看Placeholder插件 。 它基于小部件系统 ,您可以轻松构建自己的小部件来表示首字母缩写词。
我使用的逻辑:在按Backspace键时,获取光标下所选的当前元素,并检查其首字母缩写元素。 如果是,请删除。
$('html').keyup(function (e) {
if (e.keyCode == 8) {
var editor = CKEDITOR.instances.editable,
sel = editor.getSelection();
var ele = sel.getStartElement();
if(ele.getAttribute( 'class' ) == 'acronym'){
ele.remove();
}
}
});
我不能使用CKEditor的占位符插件,如下面的评论所述。
探索其他选择。 在此之前,请接受此作为正确答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.