检测点击textarea

时间:2018-02-27 15:38:19

标签: javascript html angular

当用户在我的textarea中输入文字时,我的窗口会改变颜色。我希望当它在textarea外部点击时,它会像以前一样替换颜色。

<textarea class="chat-input"
              id="textarea"
              rows="2" cols="50"
              (keyup)="detectTextarea($event)">
</textarea>


detectTextarea(event: any): any {
   this.changeColor = true;
   var textarea = document.getElementById("textarea");
}

///////// UPDATE //////////// 它不起作用:

detectTextarea(event: any): any {
  var textarea = document.getElementById("textarea");

  textarea.addEventListener("focus", function( event ) {
    this.changeColor = true;
  }, true);
  textarea.addEventListener("blur", function( event ) {
    this.changeColor = false;
  }, true);
}

2 个答案:

答案 0 :(得分:2)

您可以收听blur事件,以了解用户何时退出textarea。

答案 1 :(得分:2)

像这样改变:

<textarea class="chat-input"
    id="textarea"
    rows="2" cols="50"
    (focus)="func()"
    (blur)="otherFunc()"
    (keyup)="detectTextarea($event)">
</textarea>

然后:

func() {
    this.changeColor = true;
  }
  otherFunc() {
    this.changeColor = false;
  }
}