我有一个jQuery语句,将新的html代码添加到元素中,如下所示:
$(".welcome").removeClass("guest").addClass("user")
.text("")
.append("Welcome "+$('#username').val()+"! <a href=\"/admin/\" id=\"adminlink\">Control Panel</a> — ")
.append(
$("<a href=\"login.php?logout\" id=\"logoutlink\">Logout</a>").click(function(event)
{
$("#logoutlink").click();
})
).fadeIn("slow");
我使用了append()方法以允许jQuery处理标记上的click事件,但由于某种原因它不起作用。 我已阅读this question,但我无法弄清楚为什么这不起作用。
感谢。
答案 0 :(得分:1)
为了将单击处理程序绑定到附加到DOM的元素,您需要使用事件委托,如下所示:
$(".welcome").removeClass("guest").addClass("user")
.text("")
.append("Welcome "+$('#username').val()+"! <a href=\"/admin/\" id=\"adminlink\">Control Panel</a> — ")
.append(
$("<a href=\"login.php?logout\" id=\"logoutlink\">Logout</a>"))
).fadeIn("slow");
$(document).on("click", "#logoutlink", function(){
alert("do something");
});
有关详情,请访问here,查看标题为&#34;直接和委派活动的部分。&#34;