2012-01-25 50 views
1

我正試圖將一個jQuery函數綁定到Richfaces 3.3 a4j:commandButton組件上的'oncomplete'事件。 因爲我不想將該功能放在commandButton組件本身上,所以我試圖在文檔加載時將它綁定。 我認爲,雖然該事件沒有受到文件加載的限制,因爲該按鈕沒有呈現?如何使用jQuery綁定Richfaces'oncomplete'事件?

繼承人我如何放置的結合...

jQuery(document).ready(function(){ 
      jQuery('#Btn1').bind('complete', function(){      
       jQuery('#panel1').slideUp(750); 
       jQuery('.selection1').slideDown(750); 
       jQuery('.Next1').show(); 
      }); }); 

下面是一個命令按鈕,這是另一個頁面包括在多個地方重複使用。這就是爲什麼我不想把這個函數放在按鈕本身上的原因。

<a4j:commandButton id="Btn1" value="Select"/> 

所以,我怎麼會綁定一個「的onComplete」功能的BTN1組件從另一個位置,說父頁面?

非常感謝!

回答

0

我一直在使用Richfaces 4但我認爲同樣的理論適用。

你不重視該事件的命令按鈕本身,而是由點擊按鈕創建的AJAX事件(假設的onclick返回true)

實際上這是一些神奇的是JSF將執行,如果該組件觸發一個動作,它會在渲染ajax時調用該JS。

在點擊之前沒有做任何事情,它實際上是一個服務器端屬性。 (至少4個)擴展常規的JSF ajax(javascript)對象,我相信你可以附加你的處理程序。但這可能對你沒有任何真正的幫助。我不得不附加一個處理程序來解決一些視圖狀態問題。

您可以隨時將一個函數附加到引用不一定存在的函數的按鈕上的oncomplete。

所以<a4j:commandButton ... oncomplete="foo()"/>

,然後包括該按鈕包括您可以定義功能的網頁上。不是最好的解決方案,但可能是你最好的選擇。