2012-01-25 13 views
1

Richfaces 3.3 a4j:commandButtonコンポーネントのjQuery関数を 'oncomplete'イベントにバインドしようとしています。 私はcommandButtonコンポーネント自体に関数を配置したくないので、ドキュメントのロード時にバインドしようとしています。 ボタンがまだレンダリングされていないため、イベントがドキュメントの読み込みに拘束されないと思いますか?Richfacesの 'oncomplete'イベントをjQueryにバインドする方法は?

HERESに私は別のページにある結合...ここ

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

があるコマンドボタンを配置する方法は、それが複数の場所で再利用されています。これが、ボタン自体にこの1つの機能を配置したくない理由です。

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

私はどのようにBtn1コンポーネントに別の場所、たとえば親ページをバインドするのですか?

多くの感謝!

答えて

0

リッチフェイス4を使用していますが、同じ理論が適用されると思います。

あなたはコマンドボタン自体に、しかし(trueを返すのonclickと仮定)ボタンをクリックして作成されたAJAXイベントにイベントをアタッチされていません

実際にはそれはJSF、その場合に実行されますいくつかの魔法ですそのコンポーネントは、ajaxがレンダリングされたときにそのJSを呼び出すアクションをトリガーします。

クリックの前には何も行われません。それは現実的にサーバー側の属性です。

Richfaces(少なくとも4)は、通常のJSF ajax(javascript)オブジェクトを拡張しており、ハンドラをそのオブジェクトにアタッチすることができます。しかし、それはあなたにとって本当の助けにはならないかもしれません。私はいくつかのviewstateの問題を修正するために、ハンドラをアタッチする必要がありました。

必ずしも存在しない関数を参照するボタンの上にあるoncompleteには、関数をいつでも付加できます。

ので <a4j:commandButton ... oncomplete="foo()"/>

し、ボタンを使用すると、その関数を定義することができます含まれていることを含む任意のページで。最適な解決策ではありませんが、最善の策かもしれません。

関連する問題