js 修改backspace事件

來源:互聯網
上載者:User

標籤:on()   delete   eve   fse   var   content   lin   off   事件   

最近在做項目時,有個需求需要改寫鍵盤的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();    }});

 

js 修改backspace事件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.