处理刚刚创建的元素上的click事件

时间:2014-05-21 17:46:14

标签: jquery html onclick

我有一个jQuery语句,将新的html代码添加到元素中,如下所示:

$(".welcome").removeClass("guest").addClass("user")
  .text("")
  .append("Welcome "+$('#username').val()+"! <a href=\"/admin/\" id=\"adminlink\">Control Panel</a> &mdash; ")
  .append(
    $("<a href=\"login.php?logout\" id=\"logoutlink\">Logout</a>").click(function(event)
        {
             $("#logoutlink").click();
        })
).fadeIn("slow");

我使用了append()方法以允许jQuery处理标记上的click事件,但由于某种原因它不起作用。 我已阅读this question,但我无法弄清楚为什么这不起作用。

感谢。

1 个答案:

答案 0 :(得分:1)

为了将单击处理程序绑定到附加到DOM的元素,您需要使用事件委托,如下所示:

$(".welcome").removeClass("guest").addClass("user")
  .text("")
  .append("Welcome "+$('#username').val()+"! <a href=\"/admin/\" id=\"adminlink\">Control Panel</a> &mdash; ")
  .append(
    $("<a href=\"login.php?logout\" id=\"logoutlink\">Logout</a>"))
).fadeIn("slow");

$(document).on("click", "#logoutlink", function(){

    alert("do something");
});

有关详情,请访问here,查看标题为&#34;直接和委派活动的部分。&#34;