javascript - jQuery 单页移动应用

标签 javascript jquery html dom

我正在尝试构建一个包含多个页面的 jQuery 应用程序。不同的页面放在不同的html文件中。 index.html

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title>Dynamic Page Example</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
    </head>

    <body>
        <sciprt src="abc.js"></sciprt>
        <div data-role="page" id="home" data-title="Welcome">
            <div data-role="header">
                <h1>Dynamic Page</h1>
            </div>
            <div data-role="content">
                <input type=button id="changePage" value="Open dynamic page">
                <!--<a href="abc.html" data-prefetch>abc</a>-->
            </div>
            <script>
                $("#changePage").on("click", function() {
                    // Create page markup


                    // Enhance and open new page

                    $.mobile.changePage('abc.html');

                });
            </script>
        </div>
    </body>

</html>

abc.html

<div data-role=page data-url=hi id=abc>
    <div data-role=header id=first>
        <h1>
           <script>
            document.write(msg.first);</script>
        </h1>
    </div>
    <div data-role=content id=second>

           <script>
            document.write(msg.second);</script>
    </div>
</div>

abc.js

var msg = {
    first : 'I am First',
    second : 'I am Second',
    third : 'I am Third'

};

我不明白我哪里做错了。当没有 javascript im abc.html 时它可以工作,但是当我尝试使用 js 时,它只显示加载。

任何帮助都会很棒....

最佳答案

首先很抱歉,因为我在

<sciprt src="abc.js"></sciprt>

应该是(感谢@Ingo Burk 指出)

<script src="abc.js"></script>

其次我尝试使用

$('#second').append(msg.second);
$('#first').append(msg.first);

但是没有成功然后我用了

$('#second').html(msg.second);
$('#first').html(msg.first);

这解决了我的问题。 当您通过 $.load() 加载页面时,也不要在页面中使用 document.write()。我因此浪费了 3 天时间(感谢@Ram 指出)。检查https://github.com/jquery/jquery-mobile/issues/430

关于javascript - jQuery 单页移动应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18944138/

相关文章:

html - 页脚与内容重叠

来自 SQL Server 的 JavaScript 日期 : Codeigniter

javascript - 为什么要全局和本地安装 gulp?

javascript - 我如何表达这个 JavaScript 方法来将参数与对象转换值进行比较?

javascript - 如何调用其他元素的方法?

每当任何选择发生更改时 jQuery 操作

javascript - req.body 是使用 Express 的简单 HTML 表单的空对象

javascript - 缩小和混淆 CSS,类似于 Javascript

javascript - Backbone.js 默认路径(子域)

javascript - 具有哈希更改的简单 SPA(单页应用程序)实现