如何使用jQuery绑定Richfaces的'oncomplete'事件?

时间:2012-01-25 18:09:03

标签: richfaces jquery

我试图将一个jQuery函数绑定到Richfaces 3.3 a4j:commandButton组件上的'oncomplete'事件。 因为我不想将函数放在commandButton组件本身上,所以我试图在文档加载上绑定它。 我认为虽然事件没有受到文档加载限制,因为按钮尚未呈现?

下面是我如何放置绑定...

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组件,比如父页?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我一直在使用Richfaces 4但我认为同样的理论适用。

您没有将事件附加到命令按钮本身,而是附加到通过单击按钮创建的ajax事件(假设onclick返回true)

实际上,JSF将执行一些魔术,如果该组件触发一个动作,它将在渲染ajax时调用该JS。

在点击之前没有任何操作,它实际上是服务器端属性。

Richfaces(至少4个)扩展了常规的JSF ajax(javascript)对象,我相信你可以附加你的处理程序。但这可能对你没有任何实际帮助。我必须附加一个处理程序来修复一些viewstate问题。

您可以随时将函数附加到按钮上的oncomplete上,该函数引用不一定存在的函数。

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

然后在包含该按钮的任何页面上,您可以定义该功能。不是最好的解决方案,但可能是你最好的选择。