从li中获取价值动态创建

时间:2014-06-21 19:52:28

标签: javascript jquery html css

我想从我创建的动态LI中获取值。

我找到了这个answer,它解释了如何正常使用它。

这是我的代码。这对我在LI上的两个元素非常有用。

<ul class="nav nav-pills nav-stacked" id="listPreReq" style="height: 200px; overflow: auto" role="menu">
  <li class="active"><a href="#">Action</a></li>
  <li><a href="#">Another action</a></li>
</ul>


$("#listPreReq li").click(function() {    
 alert($(this).html());  
});

但是我有这个选项可以向LI添加更多元素。我添加了所有新元素,他们不会触发$(&#34; #listPreReq li&#34;)。click事件。不知道为什么。这是demo

$('#btPre').click(function(e) {
  var Psize= $("#listPreReq").find("li");
  Psize = Psize.size()+1;
  $("#listPreReq").append('<li><a href="#">Page '+Psize+'</a></li>');
});

2 个答案:

答案 0 :(得分:6)

<强> Solution Demo

您可以将事件绑定到ul

,而不是将事件绑定到文档
$("#listPreReq").on('click', 'li', function() {    
    alert($(this).html());  
});

查看event delegation

答案 1 :(得分:4)

使用$(document).on('click','#btPre',function(e) {...代替$('#btPre').click(function(e) {...,它会被解雇!它被称为事件委托!

更新:还有这部分:

$("#listPreReq li").click(function() {...

将其更改为:

$(document).on('click',"#listPreReq li",function() {...