我有这个小脚本,如果有人播放音频文件的时间超过27秒,则假设为+1。
以前的代码工作正常,直到我的主机遭到黑客攻击并且我的代码被搞乱了。
现在我不知道它有什么问题 我在jQuery中不是那么好。我查了一些教程,并做了大量的猜测,所以我可以让这个代码工作。
$(document).ready(function () {
$("#audio").bind('play', function () {
document.clock.theButton.value = "Stop";
stopwatch(this.value);
});
$("#audio").bind('pause', function () {
document.clock.theButton.value = "Start";
});
});
var sec = -1;
function stopwatch(text) {
sec++;
if (sec <= 9) {
sec = "0" + sec;
}
document.clock.stwa.value = sec;
if (document.clock.stwa.value == "27") {
$("#play").load("<?php echo 'accounts.php?id={$id}&music={$music}&add_play=1'; ?>");
}
if (document.clock.theButton.value == "Start") {
window.clearTimeout(SD);
sec = sec - 1;
return true;
}
SD = window.setTimeout("stopwatch();", 1000);
}
$(document).ready(function () {
$("#audio").bind('ended', function () {
sec = -1;
});
});
我收到以下错误:
未捕获的ReferenceError:$未定义popup.js:1无法加载 资源盒.anchorfree.net/insert/41.js?v=413161526
未捕获的TypeError:无法读取未定义的属性'stwa'
* 编辑 *
我已根据您的回复更新了代码,但我仍然遇到加载页面的部分问题。我已经改变了那个部分,并添加了警报,所以我可以确保php页面没有任何问题,但我甚至没有收到警报显示。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
<script language="JavaScript" type="text/javascript">
$(document).ready(function(){
$("#audio").bind('play', function(){
document.clock.theButton.value = "Stop";
stopwatch(this.value);
});
$("#audio").bind('pause', function(){
document.clock.theButton.value = "Start";
});
});
var sec = -1;
function stopwatch(text) {
sec++;
if (sec<=9) { sec = 0 + sec; }
document.clock.stwa.value = sec;
if(document.clock.stwa.value=="27"){
alert("Worked");
}
if (document.clock.theButton.value == "Start") {
window.clearTimeout(SD);
sec=sec-1;
return true; }
SD = window.setTimeout(stopwatch, 1000);
}
$(document).ready(function(){
$("#audio").bind('ended', function(){
sec=-1;
});
});
</script>
<form name="clock" style="display:none;"><br />
<input type="text" size="12" name="stwa" id="stwa" /><br />
<input type="button" name="theButton" onClick="stopwatch(this.value);" value="Start" />
<input type="button" value="Reset" onClick="resetIt();reset();" />
</form>
答案 0 :(得分:-1)
1 - 将jQuery链接到页面
2 - 替换document.clock.stwa.value = sec;
document.clock.stwa.value = parseInt(sec);
3 - 替换SD = window.setTimeout("stopwatch();", 1000);
SD = window.setTimeout(stopwatch(), 1000);
4 - 检查html是否在表单'clock'中使用id'stwa'和'theButton'定义了任何输入,如下所示:
<form name="clock">
<input type="text" id="stwa" name="stwa" value="00" />
<input type="button" id="theButton" name="theButton" value="" />
</form>