【问题标题】:How to bind a Richfaces 'oncomplete' event with jQuery?如何使用 jQuery 绑定 Richfaces 'oncomplete' 事件?
【发布时间】:2012-01-25 18:09:02
【问题描述】:

我正在尝试将 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 组件?

非常感谢!

【问题讨论】:

    标签: richfaces jquery


    【解决方案1】:

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

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

    实际上,JSF 会执行一些魔法,如果该组件触发一个操作,它将在呈现 ajax 时调用该 JS。

    在点击之前本身没有做任何事情,它实际上是一个服务器端属性。

    Richfaces(至少 4 个)扩展了常规的 JSF ajax (javascript) 对象,我相信您可以将处理程序附加到该对象上。但这可能对您没有任何真正的帮助。我必须附加一个处理程序来解决一些视图状态问题。

    您始终可以将函数附加到按钮上的 oncomplete 引用不一定存在的函数。

    所以&lt;a4j:commandButton ... oncomplete="foo()"/&gt;

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

    【讨论】:

      猜你喜欢
      • 2015-03-30
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2014-07-23
      • 2011-08-28
      • 2011-01-01
      • 2010-11-29
      相关资源
      最近更新 更多