页面中已经有li而且添加了遍历each事件,用append再次生成新的li,each不生效了
append完后,你对新的li添加事件了吗
如果是jquery 1.8 以前的版本 用 $("#id").live(“click”,function(){}) 绑定事件
jquery 1.8以后废除了 live事件 用 $(document).on("click","#id",function(){}) 绑定事件
都可以实现对未出现的元素的绑定
如果不是jqury就不知道了
你可以在动态添加事件后面重新绑定each事件,和我这个动态添加的事件类似。
<div class="fzh_box" id="fzh_box">
<ul>
<li>
<a href="javascript:void(0)">我是元素一</a>
</li>
<li>
<a href="javascript:void(0)">我是元素2</a>
</li>
<li>
<a href="javascript:void(0)">我是元素3</a>
</li>
<li>
<a href="javascript:void(0)">我是元素4</a>
</li>
<li>
<a href="javascript:void(0)">我是元素5</a>
</li>
</ul>
</div>
<div class="box_span">
<span><a href="javascript:void(0)">点我动态追加元素</a></span>
</div>
<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".box_span").find("a").click(function(){
$("#fzh_box").find("ul").append("<li>"
+"<a href='javascript:void(0)'>我是元素5</a>"
+"</li>");
$("#fzh_box").find("li").click(function(){
alert($(this).text());
});
});
$("#fzh_box").find("li").click(function(){
alert($(this).text());
});
})
</script>
这情况一般最好用delegate来绑定事件
你代码呢?事件中要重新获取一次li,而不是用一个变量存储之前的li,然后直接变量这个变量,这样获取不到新添加的li,而是在要执行的代码中重新获取li
$('xxxxxx').each(....)