Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Primefaces移动JS仅在第一个';第'页;_Javascript_Jsf_Primefaces - Fatal编程技术网

Javascript Primefaces移动JS仅在第一个';第'页;

Javascript Primefaces移动JS仅在第一个';第'页;,javascript,jsf,primefaces,Javascript,Jsf,Primefaces,我有一个使用Primefaces mobile构建的web应用程序。总的来说,一切都很好,我可以愉快地从一个视图导航到另一个视图等等 当我尝试加载外部JS文件时,问题就出现了。更具体地说,外部JS/事件侦听器只处理加载的第一个“视图”。所有其他的“视图”都表现得好像没有调用JS一样 我花了几个小时来缩小范围,但我最终使用了第三方库“iscroll.js”()来隔离问题 如果我将iscroll.js文件放在我的resources目录中并遵循iscroll文档,那么在第一个视图中创建一个滚动div,

我有一个使用Primefaces mobile构建的web应用程序。总的来说,一切都很好,我可以愉快地从一个视图导航到另一个视图等等

当我尝试加载外部JS文件时,问题就出现了。更具体地说,外部JS/事件侦听器只处理加载的第一个“视图”。所有其他的“视图”都表现得好像没有调用JS一样

我花了几个小时来缩小范围,但我最终使用了第三方库“iscroll.js”()来隔离问题

如果我将iscroll.js文件放在我的resources目录中并遵循iscroll文档,那么在第一个视图中创建一个滚动div,一切都会如预期的那样完美。如果我把相同的div放在任何其他视图上,我什么也得不到。我可以在“视图”中来回导航,初始“视图”保持其“正确性”(即,当我转到另一个“视图”时,它不会停止工作)

显然,我的问题是如何让它在所有视图上工作?我猜这是因为我不了解Primefaces Mobile是如何工作的,但是任何能够提供帮助的JSF、Primefaces、JS专家都将不胜感激

更新:要解释的基本精简代码

<f:view xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:pou="http://primefaces.org/ui"
    xmlns:pm="http://primefaces.org/mobile"
    contentType="text/html"
    renderKitId="PRIMEFACES_MOBILE"
    xmlns:ez="http://java.sun.com/jsf/composite/ezcomp">

<pm:page title="iConsult">

    <f:facet name="postinit"> 
        <h:outputScript name="js/iscroll.js"/>
    </f:facet>

    <script type="text/javascript">

        // Variables -----------------------------------------------------------
        var myScroll; // Scrolling lib var

        function loadScroll() {
            setTimeout(function() {
                myScroll = new iScroll('wrapper');
            }, 100);

        }
        window.addEventListener('load', loadScroll, false);
     </script>


<!-- Main View -->
    <pm:view id="main">
        <pm:header title="main page" swatch="b">
            <f:facet name="right">

            </f:facet>
        </pm:header>

        <pm:content>
           // If I place the iscroll div here it works
           // ...lots of code to do with the app
        </pm:content>

    </pm:view>

 <!-- Other View -->
    <pm:view id="view1">
        <pm:header title="view1" swatch="b">
            <f:facet name="right">

            </f:facet>
        </pm:header>

        <pm:content>
           // If I place the iscroll div here it doesn't works
           // ...lots of code to do with the app
        </pm:content>

    </pm:view>

  </pm:page>

</f:view>

//变数-----------------------------------------------------------
var myScroll;//滚动库变量
函数loadScroll(){
setTimeout(函数(){
myScroll=新iScroll(“包装器”);
}, 100);
}
window.addEventListener('load',loadScroll,false);
//如果我把iscroll div放在这里,它就工作了
//…有很多与应用程序相关的代码
//如果我把iscroll div放在这里,它就不工作了
//…有很多与应用程序相关的代码

要明确的是,这不是iscroll独有的。我只是用它作为参考,但我尝试过的所有外部JS文件都是这样。

是不是因为你没有将插件JS包含在正确的位置(一些基本模板),而是将其包含在一些内部页面中?@Daniel Nope没有使用任何模板。它是一个具有多个视图的单一“页面”应用程序。为了清楚起见,只是在问题中添加了精简版的代码。不熟悉手机。。。但是,如果您替换了
@Daniel No,则没有任何帮助。当呈现上述代码时,它仍然呈现普通标记。