包括脚本的子页面与jQuery移动

Include scripts on sub page with jQuery Mobile?

本文关键字:jQuery 移动 脚本 包括      更新时间:2023-09-26

我知道我可以处理pageinit()或其他事件来为新加载的页面执行JavaScript,但这需要我有实际的JavaScript存在或从主页引用。

我怎么能包括脚本在一个子页面的底部,并有它的页面加载执行?

我尝试将子页面的函数设置为全局变量(我知道这很脏),但即使这样似乎也不起作用。

我自己找到了答案。看起来子页面上的JavaScript需要在"page"里面,而不仅仅是在body标签里面:

<body>
    <div data-role="page" data-title="My Subpage">
        <p>Awesome content!</p>
        <!-- DO put your JavaScript here. -->
        <script type="text/javascript">
            alert('This works');
        </script>
    </div>
    <!-- DON'T put your JavaScript here. -->
    <script type="text/javascript">
        alert('This doesn't work');
    </script>
</body>

专业提示:它看起来像任何脚本内部,但在"Page"元素之外,甚至在主页(第一个加载的页面),不要被执行!!因此,即使禁用了jQuery移动端的AJAX加载/过渡,默认页面呈现仍然会杀死这些脚本。

任何想要加载JQM的东西都需要在元素内部,正如他们的文档中所描述的。

我个人注意到,当以这种方式加载jscript时,内存占用和泄漏,它似乎永远不会正确地删除它,从而创建副本,如果这个页面一次又一次加载。最后,我把jscript移到了主页上,我的问题就解决了!当然,这可能与代码本身有关,但它做了很多事件绑定/解绑定,我从来不确定JQ是否真的删除了空白引用。

无论如何,就是我的$ 0.02…