在JSF渲染之后重新加载Anythingslider



我试图让我的Anythingslider被重新加载,渲染div后,这是在列表中。

    <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>

我只是复制了它,然后用一个函数把它包装起来,这样我就可以第二次调用它了。

似乎问题是noConflict()模式在函数内被调用不止一次,将其移到外面:

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

相关内容

  • 没有找到相关文章

最新更新