li
这里不是 jQuery 元素。将 HTML 包装在一个$()
调用中以将其变成一个:
var li = $('<li><a href="#" data-action="app">' + name +'</a></li>');
$("ul").append( li );
$(li).bind('click',onClick);
function onClick(e){
console.log('click ',$(this).html());
}
目前,您正在将原始 HTML 附加到<ul>
,然后在尝试绑定时再次创建一个新元素。这个新创建的元素永远不会添加到 DOM 中,因此永远不会触发该事件。
您可以通过使用事件委托来避免每次添加元素时都需要 .bind :
$(function() {
// Only need to bind this once
$("ul").on('click',"li", function() {
console.log('click ',$(this).html());
});
});
// Call this any time you want to add a new li to the list
function addLi() {
var li = '<li><a href="#" data-action="app">' + name +'</a></li>';
$("ul").append( li );
}