解决方案:
多亏了Shmiddty,我明白了这一点:
$( static parent element ).on('submit', '#add_client', function(e) {
e.preventDefault();
firm.addUser( $(this), '/ci/firm/add_client', 'client' );
});
描述:
我为一位客户制作了一些表格。我希望这个表单是根据他点击的链接动态创建的。此表单将自动填充一些数据。
以下是将创建动态内容的jQuery
:
$('.create').on('click', function(e) {
e.preventDefault();
utility.create_modal(); // dynamic div with form
});
这是创建div并将PHP
表单放置在html
:中的函数
$(document.createElement('div')).attr({
'class' : 'span3'
}).html( create_div( '/ci/firm/return_user_form/client', 'html' ) ),
这里是ajax
函数:
var result = '';
$.ajax({
url: path,
type: 'get',
dataType: type,
async : false,
success: function(data) {
result = data;
}
});
return result;
这是从PHP
文件中提取的html:(这是一个巨大的表单,我只想包括有问题的按钮)
<input type="submit" name="submit" value="Add Client" id="add_client">
问题:
这个动态html
内容中有一个表单。我想在我包含的表单上放置一个JavaScript
事件。这可能吗?如果是,我该怎么做?
这不起作用(#add_client
是表单中按钮的id):
$('#add_client').on('click', function(e) {
e.preventDefault();
});
$('some_parent_selector').on('click', '#add_client', function(e) {
e.preventDefault();
});
on
侦听器需要一个父对象(不是动态的)来侦听弹出的单击事件。然后,当事件冒泡到父级时,它会确定它是否源自'#add_client'
,如果是,它会调用您的匿名函数。