我知道我可以处理pageinit()或其他事件来为新加载的页面执行JavaScript,但这要求我拥有实际的JavaScript存在或从主页引用。
如何将脚本包含在子页面的底部,并让它在页面加载时执行?
我试图将子页面的函数设置为全局变量(我知道它很脏),但即使这样也不起作用。
发布于 2011-11-17 16:11:47
我自己找到了答案。看起来,子页面上的JavaScript需要在“页面”中,而不仅仅是在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>Pro提示:看起来像身体内的任何脚本,但在"Page“元素之外,甚至在主页(第一次加载页面)上,不要执行!因此,即使禁用了jQuery mobile的AJAX加载/转换,默认的页面呈现仍然会杀死这些脚本。
发布于 2011-11-28 15:46:22
任何您想要加载的JQM都需要在元素中,正如它们的文档所描述的。
在以这种方式加载jscript时,我个人注意到内存占优势和漏洞,似乎从未正确地删除它,因此,如果这个页面被一次又一次地加载,就会创建副本。我终于把那个jscript移到主页面,我的问题就消失了!当然,这可能与代码本身有关,但是它做了大量的事件绑定/取消绑定,我从来不确定JQ是否真的删除了空白引用。
总之,我的$.02.
https://stackoverflow.com/questions/8170350
复制相似问题