Javascript jQuery-设置html()后在DOM中注册一个元素

Javascript jQuery-设置html()后在DOM中注册一个元素,javascript,jquery,Javascript,Jquery,我有一个div,单击按钮后设置innerHTML: $('#headerDiv').html('Welcome [<a href=\'javascript:void(0);\' id=\'logout_button\'>Logout</a>]'); $('headerDiv').html('Welcome[]); 但是,新元素logout_按钮未在DOM中注册,因此我无法使用传统的$(“#logout_按钮”)捕获单击事件。单击() 使用html()方法设置后,是否可

我有一个div,单击按钮后设置innerHTML:

$('#headerDiv').html('Welcome [<a href=\'javascript:void(0);\' id=\'logout_button\'>Logout</a>]');
$('headerDiv').html('Welcome[]);
但是,新元素
logout_按钮
未在
DOM
中注册,因此我无法使用传统的
$(“#logout_按钮”)捕获单击事件。单击()

使用
html()
方法设置后,是否可以在
DOM
中注册
logout_按钮


谢谢

委派活动

$('#headerDiv').on('click', '#logout_button', function() {
     // Your code
});

这将确保通过事件冒泡的概念将事件附加到动态添加的
元素。

如果委派不是您的爱好,您可以在附加按钮之前将单击处理程序绑定到按钮。通过创建DOM元素并附加它们来实现这一点:

var btn = $('<a />').text('Logout').attr({
        "href": "javascript:void(0);",
        "id": "logout_button"
    }).click(function (e) {
        // do logout stuff
        e.preventDefault();
        return false;
    });
$('#headerDiv').append(btn);
var btn=$('').text('Logout').attr({
“href”:“javascript:void(0);”,
“id”:“注销按钮”
})。单击(功能(e){
//做注销的事情
e、 预防默认值();
返回false;
});
$(#headerDiv')。追加(btn);

这还有一个额外的好处,那就是确保向DOM中添加有效元素。

Wow。这比我想象的要简单得多。谢谢只要SO允许,我会尽快接受:-)@Sus O.T,我们是否应该开始链接到一个已经存在的答案<代码>;)只有一千种选择。