当我动态创建新链接时,我无法捕捉到点击事件
$("#div").html("<a href="#" id="new">new link</a>);
$("#new").click(function(e) { //doesn't catch
e.preventDefault();
alert('click');
}
如何将处理程序绑定到动态元素?
答案 0 :(得分:3)
实际上,这对我来说很好:updated fiddle
您的原始代码中存在许多语法错误。
$("#div").html("<a href='#' id='new'>new link</a>");
fixed quotes here ------^^^ ^
fixed missing end quote here --------------------^
// works fine!
$("#new").click(function(e) {
e.preventDefault();
alert('click');
});
答案 1 :(得分:1)
您无法通过ID引用创建的元素,因为它尚未添加到DOM中,而jQuery在DOM中搜索ID。而是保存对元素的引用并将单击附加到该元素。
var div = $('<div>').attr('id', 'div');
var link = $('<a>')
.attr('href', '#')
.attr('id', 'new')
.on('click', function(e) {
e.preventDefault();
alert('click');
})
.appendTo(div);
答案 2 :(得分:-2)
看起来它会回答你的问题。
总结一下,试试
$(".test").click(function () {
$.ajax({ url: 'http://.....your path...../accounts/index',
data: {test:1},
type: 'post',
success: function(output) {
//your code
}
});
});