javascript - 按下 shift 键和向左键或箭头键时突出显示字母

标签 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++;
        }


            }

最佳答案

问题:

how can I highlight all the letters when shift and right or left arrow are pressed at the same time.

回答:

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

这将在按下 shift 和左箭头键时选择所有字母。 工作示例:

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

关于javascript - 按下 shift 键和向左键或箭头键时突出显示字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297271/

相关文章:

javascript - Requirejs 和 karma : cannot detect the source file

javascript - 改变除一个 Div 之外的所有元素的不透明度

javascript - ng-disabled 在 chrome 中不起作用。按钮在 Angular 中未禁用

javascript - AngularJS 指令为 "custom"HTML 标签 : isn't this dangerous and may conflict with future HTML versions?

javascript - 如何使用 ng-click 更改另一个 img 上的 ng-src?

javascript - 无法从 ng-click 获取从 $http 服务获取的数据

javascript - JQuery 突出显示 ajax 加载表中的一行

javascript - Mailchimp 未收到名字和姓氏

angularjs - 如何从AngularJS中选择的ng-change调用服务方法?

javascript - 如何在同一文件中访问 PHP 脚本内的 jQuery 或 javascript 变量?