Jquery insertBefore / insertAfter动画不起作用

时间:2012-12-20 02:29:40

标签: jquery

我制作了一个简单的脚本,允许用户使用向上和向下按钮对div进行排序。

jsFiddle:http://jsfiddle.net/dZ6rC/5/

不幸的是,我尝试在鼠标单击时动画移动不会导致标记被移动。

这是我的代码:

$('.up').click(function(){
  var previous = $(this).parent().parent().prev('.item');
  $(this).parent().parent().insertBefore(previous).slideUp();
});
$('.down').click(function(){
  var next = $(this).parent().parent().next('.item');
  $(this).parent().parent().insertAfter(next).slideDown();
});​

有人可以找出标签不移动的原因吗?

3 个答案:

答案 0 :(得分:5)

在向下滑动元素之前,你没有隐藏元素,因此看不到效果:

http://jsfiddle.net/dZ6rC/4/

您可以在.hide之前添加.slideDown。我想你可能想从那里稍微改进动画,但请记住这一点。

答案 1 :(得分:1)

我不完全确定你要完成什么,但链接3 parent()个电话可能不是最佳方式。

我猜这解决了你的问题:

$('.up').click(function(){
  $(this).parents('.item').slideUp();
});
$('.down').click(function(){
 $(this).parents('.item').slideDown();
});​

如果我错过了要求,请更新您的问题。

答案 2 :(得分:0)

只需添加一系列隐藏和显示:

jQuery(html_usr).insertBefore( "#log_row" ).hide().show('blind');