我动态地将行加载到表格中,并且在每个表格的末尾都有针对该行的操作,例如编辑,隐藏,删除...
当我加载页面时,我运行DOM就绪功能,例如像编辑这样:
function editPostButtonEvent()
{
$('a.edit').on('click',function(event){
event.preventDefault();
//ziskanie id kategorie
id = $(this).data('id');
clicked = $(this);
//ajax
$.ajax({
url: domainName+'admin/cmspost/ajax_edit_post',
type: 'POST',
dataType: 'html',
data: { id: id },
success : function(data)
{
postEdit(data);
}
});
});
}
问题是,它在加载DOM时处理加载的元素,但是在我用ajax添加它们之后,它根本不起作用。我相信这些事件并不附属于他们。
我知道我在DOM中的每次更改后运行该函数,但问题是插件在成功事件中没有。我读到了那个被弃用的委托功能,现在已经有了.on功能,但它不适用于添加的元素。
有人能帮助我吗?是否可以向所有人添加事件,甚至不是现有元素?
答案 0 :(得分:3)
您可以使用 event delegation 来动态添加元素:
$('body').on('click', 'a.edit', function(event){
// Your code here
})