如果我在其间使用alert();
,我的代码就可以完美运行。但如果我不使用它,那么// alert()
之后的部分;没有被执行。
function playerleer() {
$('#pplay').css('background', 'url("images/play.png")');
$('#player').get(0).pause();
$('#player').attr('src',null);
$('.song').html(null);
alert();
$('#seekslider').val(0);
$('#curtimetext').html('0:00');
$('#durtimetext').html('0:00');
}
我该怎么办?
感谢任何回应:)
答案 0 :(得分:2)
Janik您是否尝试过使用chrome调试器或javascript调试器?
基本上如果你在脚本中输入调试器就像这样
function playerleer() {
$('#pplay').css('background', 'url("images/play.png")');
$('#player').get(0).pause();
$('#player').attr('src',null);
$('.song').html(null);
debugger;
$('#seekslider').val(0);
$('#curtimetext').html('0:00');
$('#durtimetext').html('0:00');
}
只要您在运行javascript时打开浏览器调试器(f12),控制台就会点击调试器并暂停,在那里您可以查看变量然后一步一步地执行,或者您可以做的是打开谷歌浏览器,按f12键,转到源,找到您的脚本,然后单击要调试的行
以下是一张图片,例如此处还有Chrome调试器教程的链接https://developer.chrome.com/devtools/docs/javascript-debugging
答案 1 :(得分:1)
你可以延迟分成两部分。这可能有效,因为alert()具有暂停代码的副作用,直到您确认警报。
不幸的是,Javascript没有自然的暂停或睡眠方式,但您可以设置闹钟以使用setTimeout
回调一些代码。在setTimeout中,1000 = 1秒。您可能需要尝试延迟值以使其足够长并且可能因浏览器等而异:
function playerleerpart2(){
$('#seekslider').val(0);
$('#curtimetext').html('0:00');
$('#durtimetext').html('0:00');
}
function playerleer() {
$('#pplay').css('background', 'url("images/play.png")');
$('#player').get(0).pause();
$('#player').attr('src',null);
$('.song').html(null);
setTimeout(playerleerpart2, 1000);
}
如果您想更好地了解正在发生的事情,可以像这样使用console.log()
:
function playerleer() {
$('#pplay').css('background', 'url("images/play.png")');
$('#player').get(0).pause();
$('#player').attr('src',null);
$('.song').html(null);
// uncomment and test again alert();
console.log('#seekslider');
console.log($('#seekslider'));
console.log('#curtimetext');
console.log($('#curtimetext'));
console.log('#durtimetext');
console.log($('#durtimetext');
$('#seekslider').val(0);
$('#curtimetext').html('0:00');
$('#durtimetext').html('0:00');
}
在调用方法之前,应先定义这些对象。