1

我在将 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();
    }

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

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

我尝试使用h:commandButtonwithf:ajax但并没有解决问题。

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

我该如何解决这个问题?

4

2 回答 2

1

简而言之,您想在 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()" />
于 2010-07-29T13:52:45.043 回答
0

写吧

$=jQuery;

完成此操作后,您可以享受使用 $ 符号编写 jQuery 的标准方式...

$(document).ready(function() {
    $.spin.imageBasePath = '../images/spin1/';
    runSpinners();
});
function runSpinners() {
    $('#spin1').spin();
    $('#spin2').spin();
}
于 2011-04-06T17:31:23.933 回答