所以我使用append方法动态渲染一个带有jquery的段落,我想向它添加一个click事件但由于某种原因,click事件不起作用,我知道解决方案可能很简单,但我是jquery的新手并且会感激任何帮助...我知道函数内部的代码是有效的,因为我使用静态按钮测试它,它只是不使用动态的...请提前感谢任何帮助,
这是我的代码
$(this).parent().parent().children("div").append("<p class='tryAgain'>Try Again</p>");
点击功能代码,
$(".tryAgain").click(function() {......}
答案 0 :(得分:7)
在document.ready触发后,您添加到DOM的任何内容都需要使用.live或.delegate才能向新添加的元素添加事件处理程序。
例如:
$('.tryAgain').live("click", function() {...});
如果您使用的是jquery 1.7+,则应使用.on:
$(document).on("click", ".tryAgain", function(){ ... });
答案 1 :(得分:1)
尝试使用$.live o $.delegate。
答案 2 :(得分:1)
使用:
$('.tryAgain').live('click', function()
{
....
});
答案 3 :(得分:0)
可以使用实时事件,您可以在创建元素时添加处理程序:
$("<p>Try Again</p>", {
"class": "tryAgain",
click: function(){
//YOUR CLICK HANDLER
}
}).appendTo($(this).parent().parent().children("div"));
答案 4 :(得分:0)
我认为您可以在创建新的p标签时附加点击事件,如下所示:
$(this).parent().parent().children("div").append(
$('<p>').addClass('tryAgain').click(function(){
alert('test');
}));