2

を作成しましたcontenteditable div。子の 1 つでテキスト編集をロックしたい (以下の例では、"yes" をロックしたい)。HTMLは次のとおりです。

<div id="foo" contenteditable="true">this is a test
    <div contenteditable="false"> 
        <ul>
            <li>
                <a id="test" contenteditable="true" href="stackoverflow.com">a link here</a>
            </li>
        </ul>
    yes
    </div>
    ...    
</div>

および JavaScript コード:

document.getElementById('foo').addEventListener("keypress", function(e){
    alert("div " + e.which);
});

document.getElementById('test').addEventListener("keypress", function(e){
    alert("a " + e.which);
});

デモへのリンク: http://jsfiddle.net/wCs8J/​​1 /

問題は、 の右側をクリックすると<li>(カーソルがデフォルトの矢印の場合)、 でテキストを編集できるようになることです<a>。ただし、<a>受信せずkeypress、メインのみがdiv受信します。なんで?そして、それを機能させるにはどうすればよいですか?

4

1 に答える 1