栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我必须将所有脚本放入jquery mobile中的index.html

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我必须将所有脚本放入jquery mobile中的index.html

jQuery Mobile如何处理页面更改

要了解这种情况,您需要了解jQuery Mobile的工作方式。它使用ajax加载其他页面。

第一页正常加载。将其

HEAD
BODY
加载到中
DOM
,它们在那里等待其他内容。加载第二页时,仅将其
BODY
内容加载到中
DOM
。更确切地说,甚至
BODY
没有完全加载。仅会加载具有data-role =“page”属性的first div,其他所有内容都将被丢弃。即使您里面有更多页面,也
BODY

只会加载第一个页面。该规则仅适用于后续页面,如果初始 HTML中 有更多页面,则将全部加载。

这就是为什么您的按钮显示成功但单击事件不起作用的原因。同一点击事件,其父项

HEAD
在页面过渡期间被忽略。

这是官方文档:http
//jquerymobile.com/demos/1.2.0/docs/pages/page-
links.html

不幸的是,您将无法在他们的文档中找到它。以太他们认为这是一个常识,或者他们忘记像我的其他主题一样描述它。(jQueryMobile文档很大,但是缺少很多东西)。

解决方案1

在您的第二页以及所有其他页面中,将

script
标签移动到
BODY
内容中,如下所示:

<body>    <div data-role="page">        // And rest of your HTML content        <script> // Your javascript will go here        </script>    </div></body>

这是一种快速的解决方案,但仍然很丑陋。

工作示例可以在我的其他答案中找到:
更改页面后未触发页面显示

另一个工作示例:用jQuery移动转换以不同方式加载页面

解决方案2

将所有Javascript移至原始的第一个HTML。收集所有内容并将其放入单个js文件中,放入

HEAD
。在加载jQueryMobile之后对其进行初始化。

<head>    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>    <link rel="stylesheet" href="http://pre.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />    <script src="http://pre.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>        <script src="index.js"></script> // Put your pre into a new file</head>

最后,我将描述为什么这是一个好的解决方案的一部分。

解决方案3

在按钮中使用 rel =“ external”,然后使用要更改页面的每个元素。因此,不会将ajax用于页面加载,并且jQueryMobile应用程序的行为将与普通的Web应用程序类似。不幸的是,在您的情况下,这不是一个好的解决方案。Phonegap永远不能作为普通的Web应用程序使用。

<a href="#second"  rel="external">Next</a>

官方文档,请参阅以下章节:
不使用Ajax进行链接

现实的解决方案

现实的解决方案将使用 解决方案2 。但是与解决方案2不同,我将使用相同的index.js文件,并在

HEAD

每个其他可能的页面中对其进行初始化。

现在您可以问我 为什么

Phonegap
像jQueryMobile一样有问题,迟早会有一个错误,如果每个js内容都在一个HTML文件中,则您的应用程序将失败(包括加载的DOM)。可以删除DOM,
Phonegap
并刷新您的当前页面。如果该页面没有javascript,则在重新启动之前它将无法正常工作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号