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 事件在动态生成的元素上不起作用,这应该起作用,但它不起作用。见http://jsfiddle.net/ymUYy/1/

4

1 回答 1

3

.on()不是.live(). 您需要使用事件委托语法:

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