如果我在第一次加载后不刷新页面,js不起作用,为什么?

时间:2012-04-04 07:01:11

标签: jquery jquery-mobile

如果我在第一次加载后没有刷新页面,那么

js不起作用,并且div的background-img也没有显示。 代码:<a data-role="button" data-icon="plue" href="register.jsp" data-transition="pop">register</a> 如果我设置data-ajax ='false',可以成功加载js和css,但我希望有一个转换

1 个答案:

答案 0 :(得分:0)

当AJAX打开时,jQM不会加载整页,它会抓取页面,然后去掉head标签中的任何内容。他们的逻辑是,这些内容将在整个应用程序中保持一致,因此为了减少下载和加快加载时间,删除它,解析HTML并将其作为新页面注入(这也是为什么你也得到主题标签导航)。 / p> 如果AJAX正在运行,jQM也不会运行页面内的任何JS。因此,如果您正在执行类似onClick="SomeJS();"的操作,则无法运行。无论如何,你不应该使用jQuery做什么。

为了解决这个问题并防止不在每个页面上的元素出现JS错误,我开始做这样的事情:

在你的身体标签之后,用一个id或不同的类放一个包装DIV或Section(因为任何智能手机读取HTML5很好)并添加data-role =“page”属性。

<body>
<div id="page1" data-role="page">
... page content ...
</div>
</body>

将所有JS保存在一个文件中,或在每个页面上引用所有文件。如果您有一个需要运行的特定于页面的脚本,请将其包装成以下内容:

$('#page1').live('pageshow', function() {
//do what you need to do
});

希望这有帮助。