javascript - 如何在 jquery 中为新添加的 div 添加点击事件?

标签 javascript jquery html css

这是我的html

 <div id="main">
    <div class="submit">welcome</div>
 </div>

这是我的jquery

 $(".submit").click(function()
 {
     $("$main").append('<div class="submit">welcome</div>');

 });

这对第一个 div 有效。这个事件对新添加的 div 无效?

如何解决这个问题?

最佳答案

您有两个选择,委派(分配由父级检测的点击处理程序):

$('#main').on('click', 'div.submit', function(){
    // this is your click-handler
});

或者通过在元素创建点绑定(bind)点击处理程序:

$(".submit").click(function() {
    $('<div />', {
        'class' : 'submit',
        'on' : {
            'click' : function(){
                // this is your click-handler
            }
        }).appendTo('#main');

});

显然,如果你有一个命名函数要调用,你可以分配它而不是使用匿名函数:

$('#main').on('click', 'div.submit', namedFunctionToCall);

或者:

$(".submit").click(function() {
    $('<div />', {
        'class' : 'submit',
        'click' :  namedFunctionToCall
        }).appendTo('#main');

});

引用资料:

关于javascript - 如何在 jquery 中为新添加的 div 添加点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20997067/

相关文章:

javascript - 使用jquery的div中的元素数量

javascript - 显示来自 API 的正确日期

javascript - 尝试实现一个简单的幻灯片放映 - 行不通

javascript - 如何将碰撞检测添加到我的 javascript 游戏中?

html - 导航栏中的导航偏移

javascript - 在flot中动态创建数据集

javascript - 延迟加载图像和 anchor

javascript - 如何在 jquery 中以百分比设置宽度 100%

javascript - 如何显示人类可读的 "time ago"

jquery - 向下移动所选选项不可见