包含tr之后输入丢失事件

时间:2013-04-29 16:43:53

标签: jquery events dom bind

我正在使用.on()方法将以下事件绑定到输入:

$('table.transactions tbody input').on({
    "focus": function (e) { $(this).closest('tr').addClass('active'); },
    "blur": function (e) { $(this).closest('tr').removeClass('active'); }
});

当我在桌面上添加新tr时,新输入会丢失焦点和模糊事件:

$('.btn').on('click', function (e) {
    var $tr = $(this).closest('tr');
    $tr.after('<tr><td><input type="text" /><a href="" class="btn">Add Tr</a></td></tr>');
    e.preventDefault();
    return false;
});

当我使用.on()方法时,新输入的焦点和模糊事件不应该自动生效?如果没有,我如何再次绑定事件?

1 个答案:

答案 0 :(得分:3)

尝试在稳定元素上使用委托来获取新添加的元素

$(document).on('click', '.btn', function(e) {
    // event data here
}

您可以将document更改为包含元素,也就是包含您要添加的<tr>的表格。

参考:http://api.jquery.com/on/