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()"/>

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