pエレメントの代わりにテキストノード自体にイベントリスナーを追加できないのはなぜですか?textNode addEventListener
<p>childNode</p>
...
p.childNodes[0].addEventListener('click',function(){alert('ok')},false)
私はchildNodeが何もをクリックしてクロムに起こる
pエレメントの代わりにテキストノード自体にイベントリスナーを追加できないのはなぜですか?textNode addEventListener
<p>childNode</p>
...
p.childNodes[0].addEventListener('click',function(){alert('ok')},false)
私はchildNodeが何もをクリックしてクロムに起こる
テキストノードは、ほとんどのイベントを発生させません。歴史的に、要素はHTML DOMでこれを行う責任があります。ただし、テキストノードは、いくつかのイベント(IE < = 8を除く):DOM mutation eventsを発生させます。テキストノードのための特に有用なものはDOMCharacterDataModified
であり、テキストノードのテキストへの変化を検出するために使用され、ブラウザベースのエディタで有用である。
例:http://www.jsfiddle.net/timdown/c6dHX/
HTML:
<div contenteditable="true" id="div">A text node, edit me</div>
はJavaScript:
var textNode = document.getElementById("div").firstChild;
textNode.addEventListener("DOMCharacterDataModified", function(evt) {
alert("Text changed from '" + evt.prevValue + "' to '" + evt.newValue + "'");
}, false);
Textノードは、単なる「ノード」の事例であり、DOMの仕様に応じて、彼らはただのイベントリスナーを持つことはできません。自然法に違反するものではありませんが、DOMの仕組みではありません。