2017-12-07 13 views
0

この場合、イベントリスナーがトリガーされない理由は何ですか?element.focus()を使用して、フォーカスイベントリスナーの要素がトリガーされていません

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(); 
+0

あなたの作成した要素はDOMの一部ではなく、焦点を合わせるまたは使用するdiv要素をクリックしてくださいそれはインタラクティブな要素ではありません。 – Pointy

+0

@Pointy「インタラクティブな要素ではありません。 – bobbyrne01

+0

「フォーカス」を「クリック」に変更すると、正常に動作します。なぜですか? – bobbyrne01

答えて

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); 

その後手動myElement.focusを()

+0

コードを試しましたか?私のコードとの機能的な違いはありません – bobbyrne01

+0

申し訳ありません今すぐお試しください - それは 'tabindex'属性がありませんでした –

+0

別のユースケース、私は – bobbyrne01

関連する問題