jQuery fadeIn()后跟()

时间:2011-12-22 00:12:46

标签: javascript jquery fadein jquery-after

我希望将.fadeIn()动画链接到此.after(),但这似乎不是这样做的方式。有什么建议吗?

$(clicked_item).parent().parent().parent().after(str).fadeIn("slow");

3 个答案:

答案 0 :(得分:14)

您应该使用.insertAfter();

$(str)
  .hide()
  .insertAfter($(clicked_item).parent().parent().parent())
  .fadeIn("slow");

答案 1 :(得分:3)

除了@ EmreErkan的回答,请尝试最小化您的代码。使用parents()并选择要添加文本的div的idclass,而不是使用parent()三次:

$(str)
    .hide()
    .insertAfter($(clicked_item).parents(selector))
    .fadeIn("slow");

编辑:正如评论中所指出的,如果您使用{{1}定位单个元素,最好使用closest()而不是parents()用选择器通常意味着。

答案 2 :(得分:2)

$。fn.after()将返回它运行的元素(在本例中为$(clicked_item).parent()。parent()。parent())。如果那是你要淡化的元素那么我认为没有问题。如果你想fadeIn()'str'元素,我建议这样做:

$(str).insertAfter($(clicked_item).parent().parent().parent()).fadeIn('slow');

获取元素的特定父级的更稳定的方法是,如果更改HTML,则不需要更改.parent()调用的数量:将.parents()与标记名称一起使用:< / p>

$(clicked_item).parents('p').eq(0)

将“p”更改为您想要覆盖的元素。

编辑:woops,为时已晚。