- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个页面,test1.html 和 test2.html。每当其中一个页面可见时,我都想执行一些代码。
这是两个页面:
test1.html:
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>test1</title>
<link rel="stylesheet" href="css/jquery.mobile-1.2.0.css" />
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.2.0.js"></script>
</head><body>
<div data-role="page" id="test1">
<div data-role="content">
<a href="test2.html" data-role="button">jump to test2</a>
</div>
</div>
<script type="text/javascript">
$(document).on('pageshow', '#test1', function (data) {
alert('pageshow test1');
});
</script>
</body></html>
test2.html:
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>test1</title>
<link rel="stylesheet" href="css/jquery.mobile-1.2.0.css" />
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.2.0.js"></script>
</head><body>
<div data-role="page" id="test2">
<div data-role="content">
<a href="test1.html" data-role="button">jump to test1</a>
</div>
</div>
<script type="text/javascript">
$(document).on('pageshow', '#test2', function (data) {
alert('pageshow test2');
});
</script>
</body></html>
当我从 test1.html 开始时,我只收到 test1 的警报(每次返回时也是如此),但从未收到 test2.html 的警报。
我需要的是一个每个页面都不同的显示处理程序。
最佳答案
首先,从页面 BODY
中删除 JavaScript 代码,并将其放入单个 js 文件中。新的 js 文件应在 js/jquery.mobile-1.2.0.js 初始化后放入 HEAD
中。
类似这样的事情:
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.2.0.js"></script>
<script src="js/custom.js"></script>
在您的情况下,jQuery mobile 正在加载第二个 HTML 文件,但仅加载这部分:
<div data-role="page" id="test2">
<div data-role="content">
<a href="test1.html" data-role="button">jump to test1</a>
</div>
</div>
它将通过ajax加载到DOM结构中。这是第二页脚本不执行的主要原因。
第二个解决方案是在链接中使用 rel="external"
属性,它将在每次打开新页面时强制页面重新加载。
<a href="test1.html" data-role="button" rel="external">jump to test1</a>
无论如何,如果可能的话,永远不要在页面BODY
内使用SCRIPT
标签,它会起作用,但在同时它可能会导致额外的问题
如果您想了解有关此问题的更多信息,如何解决它+示例,请查看此 article 我在我的个人博客中制作。本文直接讨论这个话题,希望您不要将其视为 self 推销的尝试。
关于jQuery mobile,多个页面的 pageshow 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14502309/
我在 StackOverflow 和其他地方看到了很多与此类似的问题,但没有一个直接解决我的问题。我正在 THREE.js 中使用凸包生成器生成 n 边多面体。我想将方形纹理映射到每个多面体的每个面上
我是一名优秀的程序员,十分优秀!