使用element.focus()不触发焦点事件侦听器上的元素

时间:2017-12-07 14:51:28

标签: javascript focus addeventlistener onfocus

知道为什么在这种情况下没有触发事件监听器?

如果我将focus更改为click,则可以正常使用。

的jsfiddle:

https://jsfiddle.net/bobbyrne01/cda3tpfq/

HTML:

<div id="result">
  No focus.
</div>

JS:

var myElement = document.createElement('myElement');
myElement.setAttribute('tabindex', -1);
myElement.addEventListener('focus', function() {
  document.getElementById('result').textContent = 'Focus recieved.';
});

myElement.focus();

1 个答案:

答案 0 :(得分:0)

假设你想更新div中的内部文本,这样的东西应该有效..

HTML:

<div id="result" tabindex="-1">no focus</div>

JS:

var myElement = document.getElementById('result');
myElement.addEventListener('focus', function() {
    myElement.innerText = 'Focus received.';
},true);

然后手动点击div来聚焦或使用myElement.focus()