我的click事件中有一个模板,我在crurrent table行之后插入但是问题是当你点击新添加的模板时,该模板有一个名为的事件按钮类.add事件已经死亡并且不再工作了仅在页面加载模板时才有效一次
$('.variations_grid tr td').delegate('.add', 'click', function(e) {
$(this).closest('tr').after(template);
//the buttons int the template don't work on click event
});
var template = '<tr>';
template += '<td class="white-space:nowrap">';
template += '<input type="hidden" name="variationsid" value="1" />';
template += '<button class="btn btn-default btn-block add" type="button"> <span class="glyphicon glyphicon-plus-sign"></span> </button>';
template += '<button class="btn btn-default btn-block remove" type="button"> <span class="glyphicon glyphicon-minus-sign"></span> </button>';
template += '</td>';
template += '<tr>';
答案 0 :(得分:1)
使用事件委托时,唯一要尊重的是不能替换放置处理程序的DOM元素。因此,您必须选择最不可能替换的容器。
例如,如果要替换或添加新的<tr>
或<td>
标记,请不要在这些标记上绑定事件处理程序,否则委派将无效。
试试这个(我已将delegate
替换为on
,因为现在已弃用delegate
):
$('.variations_grid').on('click', '.add', function(e) {
//your logic
});