【问题标题】:Reload Anythingslider after JSF render在 JSF 渲染后重新加载任何滑块
【发布时间】:2013-03-20 10:30:42
【问题描述】:

在渲染列表中的 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>

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

【问题讨论】:

  • 你是怎么安装anythingSlider的?该错误实际上是其自身的全部答案:它不被识别为一个函数。因此,您没有正确安装它。
  • 更新了问题。当我第一次加载页面时它正在工作。但是一旦我渲染了一些东西,它就不会像我想要的那样做
  • 可能是 RichFaces 的事情。如果您通过 &lt;h:outputScript&gt; 以正确的 JSF 方式引用脚本会怎样?
  • 完全相同的行为。我没有那样做,因为我之前在使用 JSColor 时遇到了一些问题,当我使用 h:outputScript 时没有正确加载图像。但那是我使用普通脚本的时候

标签: javascript jsf reload anythingslider


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2011-02-06
    • 2019-08-28
    • 2011-08-15
    相关资源
    最近更新 更多