我正在使用页面导航,为此我正在使用.live pageshow事件,如下所示
$('#watchlist').live('pageshow', function(event) {
watchList();
});
它提供了我所期望的正确结果,但是如果我想在模板上添加任何javascript文件,我可以这样做吗,这样我就可以对perticulat模板使用其他功能。
我只想在模板上加载带有js的动态模板,而不是索引页上的所有js文件,因为它在某些地方有冲突
最佳答案
简介
这个答案是对评论的回应
“我只想用不同的html页面进行页面导航,包括
不同的js和css文件.
为了理解这个答案,我们来讨论jQuery Mobile是如何工作的。它使用ajax将其他页面加载到DOM
中。
第一页正常加载。它的HEAD
和BODY
被加载到DOM
中,它们在那里等待其他内容。加载第二页时,只有其BODY
内容加载到DOM
中。
解决
这里有两种解决方案:
解决方案1
在第二页和每一页中,将SCRIPT
、LINK
和STYLE
标记移到BODY
内容中,如下所示:
<body>
<script>
// Your javascript will go here
</script>
<link rel="stylesheet" href="some.css" />
// And rest of your HTML content
</body>
这是一个快速的解决方案,但对我来说,这是一个丑陋的解决方案。
解决方案2
在按钮和用于更改页面的每个元素中使用rel=“external”。因为这一点,ajax不会用于页面加载,jQuery移动应用程序的行为将类似于普通的web应用程序。
<a href="#second" class="ui-btn-right" rel="external">Next</a>
官方文件,找一章:Linking without Ajax。不幸的是,移动应用程序将因此丢失页面转换。