我正在使用jquerymobile 1.3.2 我的问题是,首先,我把我的脚本放在头部,并且所有功能都可以正常工作,除非它不能在其他页面中重复使用。然后,我将脚本移动到自己的javascript页面,然后我已经包含了js文件,但是当我尝试在移动模拟器上运行它时,所有的功能都不起作用。我试图检查它,它说“未捕获的引用错误:doTimer函数未定义”。我试图验证js文件是否加载了alert(),并且警报有效,但其他任何事情都没有。
我已经检查了所有其他相关问题,但没有一个解决方案可以解决这个问题。
这是我的javascript和html代码。
JS:
var start = new Date().getTime();
var elapsed = '0.0';
var t;
var timer_is_on=0;
function timedCount() {
var time = new Date().getTime() - start;
elapsed = Math.floor(time / 100) / 10;
if(Math.round(elapsed) == elapsed) { elapsed += '.0'; }
document.getElementById('txt').value=elapsed;
t=setTimeout("timedCount()",50);
}
function doTimer() {
if (!timer_is_on) {
start = new Date().getTime();
timer_is_on=1;
timedCount();
}
}
function stopCount() {
clearTimeout(t);
timer_is_on=0;
}
function resetCount() {
document.getElementById('txt').value='0.0';
var elapsed = '0.0';
}
HTML:
第1页
<div data-role="page" id="page1">
<div data-role="header">
<h1>Test 1</h1>
</div>
<div data-role="content">
<table>
<tr>
<td><input type="text" id="txt"></td>
</tr>
</table>
</div>
<div data-role="footer">
</div>
</div>
第二页内容与第一页内容类似。 这是我包含的脚本,我将其放在html代码下面,其他脚本如
<script src="js/StarKids.js"></script>
<script src="js/initOptions.js"></script>
<script src="js/messages.js"></script>
先谢谢。
答案 0 :(得分:0)
这与您original question的代码不同,也就是说,没有事件可以捕获“页面”之间的导航,因此没有重置计时器...我建议您注意之前在询问为什么它在页面之间导航时不起作用。
无论如何,这一次的问题是你在wlCommonInit()
...中定义了所有的功能
而是将它(对于所有函数)更改为以下内容...
此代码段的含义是,一旦应用程序启动(wlCommonInit()
),它将调用doTimer()
,doTimer()
调用timedCount()
等等......
// global vars
var start
var elapsed = '0.0';
var t;
var timer_is_on = 0;
function wlCommonInit(){
doTimer();
}
function doTimer() {
alert("In doTimer()");
if (!timer_is_on) {
start = new Date().getTime();
timer_is_on = 1;
timedCount();
}
}
function timedCount() {
alert ("In timeCounted)
var time = new Date().getTime() - start;
elapsed = Math.floor(time / 100) / 10;
if(Math.round(elapsed) === elapsed) { elapsed += '.0'; }
document.getElementById('space').value=elapsed;
t = setTimeout("timedCount()",50);
}