調用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