使退格键一次删除整个单词的方法

时间:2016-07-08 07:45:17

标签: javascript angularjs-directive angular

我有一个文字区域:

APKs

我想要一种方法让退格键在每次使用Javascript或Angular js点击时删除整个单词。 当我按退格键时,我希望它由运算符拆分并从末尾删除。上例中的第一个退格键会删除“你'然后'是'那么'怎么'等等。 但是,如果鼠标在世界上?然后它删除了世界'首先,然后'你好。

1 个答案:

答案 0 :(得分:1)

以下是使用data属性匹配更改的解决方案:jsFiddle

jQuery('#EditableDiv').keyup(function(e) {
  if (jQuery(e.target).text().length < jQuery(e.target).attr("data-value").length) {
    var data = jQuery(e.target).attr("data-value").split(" ");
    var text = jQuery(e.target).text().split(" ");
    for (var a = 0; a < data.length; a++) {
      if (text[a] != data[a]) {
        text.splice(a, 1);
        break;
      }
    }
    jQuery(e.target).text(text.join(" "));
  }
  jQuery(e.target).attr("data-value", jQuery(e.target).text());

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="EditableDiv" contenteditable="true" data-value="Hello, how are you" class="size">Hello, how are you</div>