在JSF渲染之后重新加载Anythingslider

时间:2013-03-20 10:30:43

标签: javascript jsf reload anythingslider

我想在渲染列表中的div之后重新加载我的Anythingslider。

    <h:selectOneMenu id="dropdownDevice"
        value="#{skinningBean.currentDevice}" converter="SkinConverter">
        <f:selectItems value="#{skinningBean.myDevicesSI}" var="c"
            itemValue="#{c}" />
        <a4j:ajax event="change" render="preview" oncomplete="reloadSlider()" />

    </h:selectOneMenu>

注意:预览div位于slider1列表

附近
<script type="text/javascript">  
function reloadSlider() {  
    var $jq = jQuery.noConflict();
    $jq(function($){
      $jq('#slider1').anythingSlider();
    }); 
}  
</script>   

但是我总是得到这个错误(我尝试的不仅仅是这个解决方案):

Error: TypeError: $jq(...).anythingSlider is not a function

在此之后,仅显示简单的列表元素。 我有什么想法可以重新加载滑块?

编辑:我不希望重新加载整个页面,因为下拉菜单不是我正在渲染的唯一组件

这是我初始化anythingslider的方式:

<script src="../js/jquery.anythingslider.js"></script>
<link rel="stylesheet" href="../css/anythingslider.css" />

<script type="text/javascript">
var $jq = jQuery.noConflict();
$jq(function($){
  $jq('#slider1').anythingSlider();
}); 
</script>

我只是复制它并用函数包装它,所以我可以再次调用它。

1 个答案:

答案 0 :(得分:1)

看来问题是在函数内部多次调用noConflict()模式,将其移到外面:

<script type="text/javascript">  
var $jq = jQuery.noConflict();
function reloadSlider() {  
    $jq(function($){
      $jq('#slider1').anythingSlider();
    }); 
}  
</script>