无法在jquery中获取动态生成按钮的id

时间:2012-10-14 13:26:38

标签: jquery

  

可能重复:
  jQuery click not working for dynamically created items

        $(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>

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

1 个答案:

答案 0 :(得分: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函数修复了该问题。

顺便说一句,建议将你的脚本放在身体末端而不是头部。