2013-03-20 89 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>