调用JS功能:
<p:ajax listener="#{bean.onDrop}" onstart="applyEffects();" update="newPanel" />
功能是:
function applyEffects() {
var oldPanel = $(document.getElementById('oldPanel'));
var newPanel = $(document.getElementById('newPanel'));
oldPanel.css({"display":"none"});//or oldPanel.fadeOut(500) which looks fancy
newPanel.css({"display":"inline"});
newPanel.effect("highlight",
{color:"#87FF7A"}, 1500);
}
- 打电话时,不要忘了给组件的确切客户端ID
document.getElementById
。您可以通过浏览器的开发人员设置来检测它。如果出现问题,您可以放弃update="newPanel"
或者您可以尝试update="oldpanel newpanel"
。
为了能够运用它的特定面板:
function applyEffects(xhr,status,args) {
var oldPanel = $(document.getElementById('oldPanel'));
var newPanel = $(document.getElementById('newPanel'));
if(args.id=='oldPanel') {//oldPanel or whatever which equals to eventID
oldPanel.css({"display":"none"});//or oldPanel.fadeOut(500) which looks fancy
}
newPanel.css({"display":"inline"});
newPanel.effect("highlight",
{color:"#87FF7A"}, 1500);
}
您应该p:ajax oncomplete="applyEffects(xhr,status,args);"
称之为:
public void onComponentDrop(DragDropEvent ddEvent) {
int id = event.getData();//or sth.similar to getId
RequestContext.getCurrentInstance().addCallbackParam("index", id);
}
上的代码将添加一个参数来Ajax响应它可以被检索。我在这里直接编码,因此可以很容易地在IDE上看到很少的错误。
我想要应用淡出效果只有当oldPanel显示不是每次执行该函数,如何添加条件来做到这一点。 – 2013-04-24 11:59:12
@MahmoudSaleh我已经编辑了我的答案了一下。 – 2013-04-24 12:09:05
尽管我使用正确的ID和面板,但JS代码无法正常工作。 – 2013-04-24 12:10:08