2011-10-18 56 views
0

我对jQuery的世界很新颖& Ajax和我一直希望得到社区的支持/帮助。本质上,我试图为一些预先确定的新闻提要创建一个'facebook-esqu'新闻板。jQuery直播垂直新闻股票...

我有一个列表元素,动态创建一个页面加载列表通过Java(JSF2是确切的),这是从我的数据库构建的列表。我想要的是一个ajax函数(简单的ajax poll就足够了)来检查一个变化,以及一个变化适用于为新的列表元素执行一个简单的淡出/淡入功能。无论这个更新列表元素是在列表的底部(如滚动条动画)还是在它的位置,我不介意我只是困惑于如何实现这一目标。

这里是我的思路的粗表示:

onPage load: 
List Item 1 
List Item 2 
List Item 3 

OnAjax Update: 
List Item 1 
List Item 2 <--- Update Identified so fade element out 
List Item 3 

OnAjax After Update: 
List Item 1 
List Item 2a <--- Fade new element in 
List Item 3 

希望有人可以提供帮助。

干杯

回答

0

问题的问题是您要求我们为您编写代码。但是,给你在正确的方向轻轻一推:

比方说,当你调用更新的JSF2页面,它返回刚刚更新的项目,这样的事情:

{{id: 2, status: "removed"}, 
{id: 2a, status: "added", text: "This is a new element"}, 
{id: 4, status: "added", text: "This element 4"}} 

你会然后有一个遍历JSON结果的函数,查看状态字段。

如果陈述是这样的:

<div id="listelements"> 
    <div id="1">List Item 1</div> 
    <div id="2">List item 2</div> 
    <div id="3">List Item 3</div> 
</div> 

那么你的代码可能是这个样子:

for (each element in JSON string as element) { 
    if (element.status == 'removed') { 
    $('#' + element.id).fadeOut().remove(); 
    } else if (element.status == 'added') { 
    $("#listelements").append('<div id="' + element.id 
     + '" style="display:none;">' 
     + element.text + '</div>'); 
    $("#" + element.id).fadeIn(); 
    } 
} 

请注意,我还没有调试的代码,所以我不确定它是否能够100%工作。这是一个可能的方向让你开始。你会发现,在你开始处理这个问题之后,如果你提出更具体的问题,你会得到更好的答案。