zoukankan      html  css  js  c++  java
  • js 修改backspace事件

    最近在做项目时,有个需求需要改写键盘的backspace事件。

    首先是一个可编辑的div,div中含有标签(li,li为空标签)也还有文字。

    需求问题:

    1、删除文字时,不能删除前面的空标签。

    2、标签可以直接删除。

    此处需要重写键盘的backspace事件。代码如下:

    $(document).on("keydown","#txtEditerBox",function (e) {
        if(e.keyCode === 8){
            var selection = window.getSelection();
            var range = selection.getRangeAt(0);
            // 当 光标 集合到 一点 时, range的文档内容为空,需要 重新指定  选择前一个节点的最后一个文本为删除的range文档
            if(range.collapsed){
                if(range.startOffset===0){
                    //range.setStart(range.startContainer.nextElementSibling);
                    //range.setStartOffset(range.startContainer.length);
                    range.start = range.startContainer.previousElementSibling;
                    var id = range.start ? range.start.id:"";
                    $(".c-textarea").find("#"+id).remove();
                    //range.startOffset = range.startContainer.length;
                }else{
                    range.setStartOffset(range.startOffset  - 1);
                    range.startOffset = range.startOffset  - 1;
                }
            }
             console.log(range);
            // 删除当前 Range 对象表示的文档区域。
             range.deleteContents();
             e.preventDefault();
             e.stopPropagation();
        }
    });
  • 相关阅读:
    清除富文本样式
    jquery--cookie应用
    Log4j 配置详解
    判断请求是否为ajax
    日期工具类
    Windows Server2012 KB2919355 补丁无法安装
    安装系统步骤:
    大白菜u盘启动盘制作工具取消赞助商方法详解
    视频使用教程
    检查网络是否正常的几种命令
  • 原文地址:https://www.cnblogs.com/java-chanjuan/p/6854832.html
Copyright © 2011-2022 走看看