【问题标题】:unable to fetch the id of dynamically generated button in jquery [duplicate]无法在jquery中获取动态生成的按钮的ID [重复]
【发布时间】:2012-10-04 15:53:45
【问题描述】:

可能重复:
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>

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

【问题讨论】:

  • 与此问题相关的 n 个问题之一 stackoverflow.com/questions/9484295/... – 30 分钟前未定义

标签: jquery


【解决方案1】:

这可行:

    $(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 函数解决了这个问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多