0
<div id="t1" contenteditable="true" style="width: 400px; height: 200px;">
    <ul>
        <li style="list-style-type: none;">Apple</li>
    </ul>
</div>    <span id="dd"></span>

<script>
$(function () {
    event.returnValue = false;
    $('#t1>ul').on("click", 'li', function () {
        utility.test(this);
    });
});

var utility = {
    test: function (elem) {
        var $this = $(elem);
        $('#dd').html($this.html());
        if (event.preventDefault) event.preventDefault();
    }
}

上記のコードは正常に動作しますが、以下のように bind イベントを click から keydown に変更すると

$('#t1>ul').on("keydown", 'li', function () {

それはうまくいきませんでした。jQuery バージョン 1.9.1 を使用しており、バージョン 1.8.3 で .live を使用しようとしましたが、まだ機能しませんでした。

どうもありがとう。

4

2 に答える 2

0

フラグ付きのタグは、イベント内のコンテンツではなくcontenteditable、イベントをキャプチャして発行します。keydown簡単に言えば、あなた<li>keydownイベントを発行していません。

于 2013-11-09T16:42:01.823 に答える
0

最初にliを選択しないのはなぜですか?

$('#t1 li').on("keydown", function () {
    alert('You are typing');
    utility.test(this);
});
于 2013-11-09T16:27:31.070 に答える