代码之家  ›  专栏  ›  技术社区  ›  Dejell

带JSF的jQuery

  •  1
  • Dejell  · 技术社区  · 14 年前

    我在将jquery与JSF集成时遇到问题。

    我使用旋转。我的代码中有:

    <script type="text/javascript" src="#{request.contextPath}/scripts/jquery.selectbox-0.5.js"></script>
        jQuery(document).ready(function($){
          $.spin.imageBasePath = '../images/spin1/';
          $('#spin1').spin();
          $('#spin2').spin();
          $('#spin3').spin();
        }
    

    当我第一次调用页面时,“spin”被添加到组件中。

    问题是我也有,一旦我调用它并更新页面的一部分(在我有微调器的地方),它就不再起作用了。似乎jquery只在页面读取时被调用,一旦刷新了其中的一部分,我就会再执行它。

    我试着用 h:commandButton 具有 f:ajax 但没有解决问题。

    我试图将脚本移动到正在呈现的表单中,但没有帮助

    我怎么解决这个问题?

    2 回复  |  直到 14 年前
        1
  •  1
  •   BalusC    14 年前

    在一个螺母中,您想在Ajax请求完成时重新执行它吗?

    将其移动到类似的函数中:

    jQuery(document).ready(function() {
        jQuery.spin.imageBasePath = '../images/spin1/';
        runSpinners();
    });
    function runSpinners() {
        jQuery('#spin1').spin();
        jQuery('#spin2').spin();
        jQuery('#spin3').spin();
    }
    

    这样就可以在 oncomplete 的属性 <p:commandButton> .

    <p:commandButton oncomplete="runSpinners()" />
    

    或者,您也可以使用 <p:ajaxStatus> 在完成时执行 每一个 Ajax调用,无论按下哪个按钮/链接:

    <p:ajaxStatus oncomplete="runSpinners()" />
    
        2
  •  0
  •   Jitesh    14 年前

    只写

    $QQuery;

    这样做之后,您可以享受使用$sign编写jquery的标准方法…

    $(document).ready(function() {
        $.spin.imageBasePath = '../images/spin1/';
        runSpinners();
    });
    function runSpinners() {
        $('#spin1').spin();
        $('#spin2').spin();
    }