2013-05-08 78 views
1

我有一個Javascript函數,它根據文檔中的某些隱藏字段更改某些元素的位置,這些字段會使用ajax定期更新。JSF在onClick事件之前執行Ajax

問題:

由於javascript函數(的onclick)的Ajax的(它重新加載在其中hiddenfields是元素),其應該改變位置的元素是總是落後一圈之前執行。

我想才達到什麼:

如果AJAX重新加載onclick事件之前執行的問題將得到解決,所以參考hiddenfields是正確的。 (而不是在後退)

這是可能的任何方式或有其他解決這個問題?

代碼:

電話:

   <h:commandButton id="dice" onclick="animate()" alt="W&uuml;rfel mit einer Eins" image="resources/img/wuerfel1.png" action="#{spiel.dice()}" tabindex="4" title="W&uuml;rfel mit einer Eins"> 
        <f:ajax render="gameinfo" />        
       </h:commandButton> 

JavaScript函數:

function animate() { 
     var newPlayer1 = document.getElementById('player1score').value; 
     var newPlayer2 = document.getElementById('player2score').value; 
     // Spieler 1 Animation 
     $("#player1").fadeOut(700, function() { 
      $("#player1").appendTo(newPlayer1); 
      $("#player1").fadeIn(700); 
}); 
     // Spieler2 Animation 
     $("#player2").delay(1400).fadeOut(700, function() { 
      $("#player2").appendTo(newPlayer2); 
      $("#player2").fadeIn(700); 
}); 
    } 

回答

2

您應該使用oneventf:ajax

<h:commandButton id="dice" alt="W&uuml;rfel mit einer Eins" image="resources/img/wuerfel1.png" action="#{spiel.dice()}" tabindex="4" title="W&uuml;rfel mit einer Eins"> 
     <f:ajax render="gameinfo" onevent="animate" />        
    </h:commandButton> 

更改animate功能分爲

function animate(data) { 
    if (data.status === 'success') { 
     //your original code goes here... 
    } 
} 

另外:通過BalusC讀這樣的回答:Proccess onclick function after ajax call

+0

That's天才要比,它的作品! :D Thx尋求幫助 – 2013-05-08 15:11:12

+0

不客氣 – Daniel 2013-05-08 15:13:49

相關問題