移位时左侧突出显示字母,或按下箭头

时间:2017-07-25 07:59:23

标签: javascript angularjs

我有一个html元素,当按下右箭头和左箭头时,该元素就会出现。默认行为是当按下shift并按下右箭头键或左键时,它仅突出显示下一个字母而前一个字母未突出显示,它不会突出显示所有字母以复制单词,如何突出显示所有字母时同时按下shift和向右或向左箭头。谢谢。

这是我目前的代码:

angular.module('myApp', [])
.controller("Ctrl_List", ["$scope", function(scope) {
  scope.keyPress = function(){
     var code = event.which;
      if (code == 37) {
        document.activeElement.selectionEnd--;
          var test = false;
         if(test == false){
        //  document.activeElement.selectionStart--;
          document.activeElement.selectionEnd--;
          if(document.activeElement.selectionStart == 0){
             test = true;
             document.activeElement.selectionEnd = 0;
             document.activeElement.selectionStart = 0;
          }
    }
        if (code == 39) {
            event.preventDefault();
            document.activeElement.selectionStart++;
            //document.activeElement.selectionEnd++;

        }
  }
}]);


<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div class="container" ng-controller="Ctrl_List">
  <div class="row">
   <textarea name="text" unselectable="on" id="text" cols="30" rows="10" ng-keydown="keyPress();"></textarea>
</div>
</div>

我的解决方案:我想我会被关闭。

 if (event.shiftKey) {
                //eval("scope." + callFun + "();");
                console.log('shiftKey Pressed');

         if (code == 37) {
              console.log('arrow Pressed');
        }

        if (code == 39) {
              console.log('arrow Pressed');
              document.activeElement.selectionStart == 0;
                 document.activeElement.selectionStart++;
              document.activeElement.selectionEnd++;
        }


            }

1 个答案:

答案 0 :(得分:1)

问题:

  

如何在移动时同时突出显示所有字母,同时按下向右或向左箭头。

答案:

  if (code == 37 && event.shiftKey) {
    event.preventDefault();
    document.activeElement.selectionStart = 0;
    document.activeElement.selectionEnd = document.activeElement.textLength;
  }

当按下shift和左箭头键时,这将选择所有的lettters。 工作示例:

https://codepen.io/anon/pen/eEmpQM?editors=1011