我希望将.fadeIn()
动画链接到此.after()
,但这似乎不是这样做的方式。有什么建议吗?
$(clicked_item).parent().parent().parent().after(str).fadeIn("slow");
答案 0 :(得分:14)
您应该使用.insertAfter()
;
$(str)
.hide()
.insertAfter($(clicked_item).parent().parent().parent())
.fadeIn("slow");
答案 1 :(得分:3)
除了@ EmreErkan的回答,请尝试最小化您的代码。使用parents()
并选择要添加文本的div的id
或class
,而不是使用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,为时已晚。