在AngularJs中获取Textarea光标位置

时间:2016-01-04 21:31:49

标签: javascript jquery html angularjs selection

这个问题归结为需要在指令中获取<textarea>元素的光标位置。简而言之,我需要在此工作。

var position = element.selectionStart;

使用各种方法对该主题至少有5个答案,例如this one for angularthis one for some jQuery extensionenter link description here

我已经阅读了所有内容,并决定尝试获取选择开始对象。这是我的PLNKR。我不知道我做错了什么。注意 - 背景改变的东西是看我是否选择了正确的元素,我就是这样。这里编辑的代码片段失败了:

      link: function(scope, elem, attrs) {
          var textArea = elem.find("#itemTextArea");
          textArea.bind('click', function() {
              //This gets to undefined, even though selectionStart is a property of textarea*
              scope.testValue = elem.selectionStart;
          });
      },

* https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Property/selectionStart

P.S。单击文本区域可立即知道指令中发生了什么。

2 个答案:

答案 0 :(得分:11)

您正在寻找的语法是:

scope.testValue = textArea.prop("selectionStart");

答案 1 :(得分:2)

这似乎也有效

  

scope.testValue = textArea [0] .selectionStart;