我已经在 dataTable 中加载了一个帖子列表,我有一个表单可以将新帖子添加到“墙”中。
我想做类似Facebook的墙,所以当我插入一个新的帖子时,我想在它出现时有一个淡化效果。
我已尝试使用PrimeFaces的效果,但它会将效果应用于整个DataTable,所以我想使用一个简单的JQuery脚本,但我不知道该怎么做。
这是我上一次尝试的简单代码(不起作用!):
<script type="text/javascript">
function animateNewPost(id) {
jQuery('#post_' +id).effect("slide", { direction: "right" }, 2000);
}
</script>
[cut]
<p:commandLink ajax="true" action="#{postBean.insertPost(loginBean.user)}" value="Insert Post" update=":postMessage, :postList, :postForm" oncomplete="animateNewPost(#{lazyPostBean.posts.get(0).getIdPost()})"/>
[cut]
<p:dataTable id="postTable" var="post" value="#{lazyPostBean.posts}">
<p:column style="border: 0px; background: rgba(0,0,0,0);">
<div class="feature">
<div class="post_#{post.idPost}">
[POST CONTENT]
</div>
</div>
</p:column>
</p:dataTable>
我该怎么做?
编辑:id正确传递给javascript函数,而Post的div的HTML输出是
<div class="post_24">
所以我猜这是对的。