jquery 和 html DOM

jquery and html DOM

如何使附加元素可点击?在这种情况下,单击 "Hello" 应该会更改 #div1.

的背景
<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
    $(document).ready(function(){
        $("button").click(function(){
            $("#div1").append("<p>Hello</p>");
        });
        $("p").click(function(){
            $("#div1").css({"background":"#0ff"});
        });
    });
    </script>
    <style>
    #div1 {
        background:#ff0;
        height:100px;
        margin:0 0 50px 0;
        }
    p {cursor:pointer;}
    </style>
</head>
<body>
    <div id="div1"></div>
    <button type="button">Click Me!</button>
</body>

谢谢!

使用event delegation 使用.on()

$(document).on('click', 'p', function(){
    $("#div1").css({"background":"#0ff"});
});

由于您已经动态添加了 html <p>Hello</p>,因此无法直接附加事件,您必须使用如上所示的事件委托。

使用下面的代码。它被称为事件委托。阅读更多 here

$(document).on('click','p',function(){
        $("#div1").css({"background":"#0ff"});
});