0

可能重复:
jQuery click 不适用于动态创建的项目

        $(document).ready(function(){
            $('#btn').click(function(){

                var createInput=$("<input type='button'>");
                createInput.attr("id","close1");
                createInput.attr("value","close");
                $('#outer-div').append(createInput);
            });

            $("#close1").click(function(){
                alert('hi');
            });
        });


    </script>
</head>
<body>
    <div id='outer-div'>
        <input id='btn' type='button' value='click here'/>
    </div>

代码有什么问题。当我单击名为关闭的动态生成按钮时,我没有收到警报。请帮忙

4

1 回答 1

5

这会起作用:

    $(document).ready(function(){
        $('#btn').click(function(){

            var createInput=$("<input type='button'>");
            createInput.attr("id","close1");
            createInput.attr("value","close");
            $('#outer-div').append(createInput);
        });

        $(document).on('click', "#close1", function(){
            alert('hi');
        });
    });

问题与

$("#close1").click...

是它添加了一个事件处理程序,因为当您执行此行时集合是空的。on功能解决了这个问题。

顺便说一句,建议将脚本放在正文的末尾而不是头部。

于 2012-10-14T13:28:25.430 回答