日期:2014-05-16  浏览次数:20361 次

JQuery添加元素后,无法实现原有的功能。求大侠指导
<ul id = 'list'>
<li>aaaaa<a href="#" class="up">↑</a><a href="#" class="down">↓</a></li>
<li>bbbbb<a href="#" class="up">↑</a><a href="#" class="down">↓</a></li>
<li>ccccc<a href="#" class="up">↑</a><a href="#" class="down">↓</a></li>
<li>ddddd<a href="#" class="up">↑</a><a href="#" class="down">↓</a></li>
</ul>
<input type="button" id="btn" name="btn" value="按钮" />

$(document).ready(function () {
//向下移动
$("a.down").click(function(){
var row =$(this).parents("li");
if(row.next().html()){
row.next().after(row);
}
});
//向上移动
$("a.up").click(function(){
var row =$(this).parents("li");
if(row.prev().html()){
row.prev().before(row);  
}
});

$('#btn').click(function(){
  $("#list").append("<li>eeeee<a href="#" class="up">↑</a><a href="#" class="down">↓</a></li>");
  });
});

点击按钮添加一条记录之后,不能实现上下移动功能,是哪里出了问题?

------解决方案--------------------
动态添加的dom,用live来绑定事件


楼主 试试

$(dom).live('click', function(){
// code
})
------解决方案--------------------
楼主参考下

http://www.w3school.com.cn/jquery/event_live.asp
------解决方案--------------------
动态生成的dom对象,必须用live来绑定事件