0

AFAICTこれは機能するはずですが、機能しません。jQuery 1.9.0 を使用すると、次のようになります。

<html>
    <head>
        <script type="text/javascript" src="js/libs/jquery-1.9.0/jquery.min.js"></script>
        <script type="text/javascript">

            $(document).ready(function() {
                $("button").click(function() {
                    $("#area").html("<p>click me</p>");
                });

                $("p").on("click", function() {
                    alert($(this).text());
                });
            });

        </script>
    </head>
    <body>
        <p>some text</p>
        <button>Create me</button>
        <div id="area"></div>
    </body>
</html>

「何らかのテキスト」をクリックするとアラートが表示されるのに、生成された「クリックしてください」をクリックすると表示されないのはなぜですか? .on() の要点は、動的に生成されたコードでイベント ハンドラーを有効にすることだと思いました。Click event does not work on dynamic generated elementsによると、これは機能するはずですが、機能しません。http://jsfiddle.net/ymUYy/1/を参照してください

4

1 に答える 1

3

.on()のドロップイン代替品ではありません.live()。イベント委任構文を使用する必要があります。

$('#area').on('click', 'p', function() {
    ...
});
于 2013-04-04T01:44:51.053 に答える