从DOMElement.focus()捕获焦点事件

时间:2017-01-04 07:42:23

标签: javascript polymer-1.0

我有一个聚合物网络组件(可能不重要),它包含一堆可聚焦的控件(输入和按钮),我在其上附加了focus事件的事件监听器。

使用键盘,我可以通过控件进行选项卡,但是当我编写单元测试时,我会调用DOMElement.focus(),但事件侦听器回调没有触发。这让我觉得当你以编程方式聚焦时,焦点事件根本不会发生。

我错了吗?有没有办法使用focus检测DOMElement.focus()事件?

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 将焦点属性的布尔值绑定到isFocus
  2. isFocus添加观察者,调用函数inputIsFocus
  3. if isFocus === true {// do something} else {// do do others}
  4. 纸按钮

    <paper-button focused={{isFocus}}>I am Focus</paper-button>
    

    纸输入

    <paper-button focused={{isFocus}}>I am Focus</paper-button>
    

    处理程序

    Polymer({
    
      is: 'x-custom',
    
      properties: {
        isFocus: {
          type: Boolean,
          value: false
        }
      },
    observers: [
      'userIsFocus(isFocus)'
    ],
    inputIsFocus: function: (){
    if isFocus === true {
     // do someting}
    else {
     // do someting else
      }
    }