2

我正在使用页面导航,为此我正在使用这样的 .live pageshow 事件

$('#watchlist').live('pageshow', function(event) {
        watchList();
    });

它给出了我期望的正确结果,但是如果我想在该模板上添加任何 javascript 文件,我可以这样做,以便我可以为特定模板使用其他功能。

我只想在该模板上加载带有 js 的动态模板,而不是索引页面上的所有 js 文件,因为它在某处发生冲突

4

1 回答 1

1

介绍

这个答案是对评论的回应

“我只想使用不同的 html 页面进行页面导航,包括不同的 js 和 css 文件就是这样......”。

为了理解这个答案,让我们讨论一下 jQuery Mobile 是如何工作的。它使用 ajax 将其他页面加载到DOM.

第一页正常加载。它的HEADBODY被加载到 中DOM,它们在那里等待其他内容。加载第二页时,仅将其BODY内容加载到DOM.

解决方案

这里有2个解决方案:

解决方案 1

在您的第二页和其他所有页面中,将您的SCRIPTLINK标签移动STYLEBODY内容中,如下所示:

<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 Mobile 应用程序将表现得像一个普通的 Web 应用程序。

<a href="#second" class="ui-btn-right" rel="external">Next</a>

官方文档,找一章:Linking without Ajax。不幸的是,移动应用程序将因此失去页面转换。

于 2013-05-14T09:43:02.363 回答