为什么我不能通过.append选择<li>添加?

时间:2017-06-12 18:44:21

标签: javascript html

当我使用下面的css添加preprocessing on the CPU frees GPU time to focus on training时,我可以选择该项目,但如果我使用<li>添加它,我不能做错了什么?

.append

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<ul id="events" class="select" name="events">
<li>Opt 1</li>
</ul>

$('ul.select li').click(function(e){
  var item = $(e.target);
  item.addClass('selected');
  item.siblings().removeClass('selected');
  $('#events').val(item.text());
});

$('#events').append('<li>Opt 2</li>');

有关问题的示例,请参阅Fiddle

1 个答案:

答案 0 :(得分:2)

$('ul.select li').click将在调用代码时向所有与此选择器匹配的元素添加事件侦听器。以下内容适用:

$('.select').on('click', 'li', function(){
    // code here 
});

这称为事件委托。基本上,您将一个事件侦听器添加到链上方的元素(.select)。然后将click事件推广到链上方的元素(.select),如果e.target匹配选择器(li),则调用回调。