2013-03-20 90 views
0

我想让我的Anythingslider在渲染列表中的div之后重新加载。在JSF渲染后重新加载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> 

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

+0

你怎么安装anythingSlider呢?错误实际上是整个答案本身:它不被认为是一个函数。因此,您没有正确安装它。 – BalusC 2013-03-20 11:43:14

+0

更新了问题。当我第一次放置该页面时,它正在工作。但只要我渲染一些东西就不会像我想要的那样做 – 4ndro1d 2013-03-20 12:07:58

+0

可能是一个RichFaces的东西。如果您通过''引用脚本正确的JSF方式会怎么样? – BalusC 2013-03-20 12:22:01

回答

1

它出现的问题是,noConflict()模式被称为比函数内部一次,外界将其移动:

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