Javascript只适用于alert();
如果我使用Javascript只适用于alert();,javascript,jquery,html,Javascript,Jquery,Html,如果我使用alert(),我的代码工作得很好介于两者之间。但是如果我不使用它,//alert()之后的部分;不会被处决 function playerleer() { $('#pplay').css('background', 'url("images/play.png")'); $('#player').get(0).pause(); $('#player').attr('src',null); $('.song').html(null); alert(); $('#s
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');
}
我能做什么
感谢您的回复:)您可以延迟将其分成两部分。这可能会起作用,因为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');
}
在对这些对象调用方法之前,应该先定义它们 Janik您是否尝试过使用chrome调试器或javascript调试器
基本上,如果您在脚本中像这样键入debugger
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),控制台就会点击调试器并暂停,在那里您可以查看变量,然后一步一步地进行,或者您可以打开google chrome,按f12键,转到源代码,找到脚本,然后单击要调试的行
这是一个图像,例如,这是一个指向Chrome调试器教程的链接DOM构建完成时是否执行函数。。。ie内部$(函数(){…})
或$(窗口).load(函数(){…})代码>在执行第二部分之前尝试设置超时。没有执行或什么都不做?我相信这是Reflective所说的,它可能在创建所有元素之前执行,并且无法及时选择。没有足够的信息来确定,但这可能是重复的注意事项,没有理由颠倒方法的顺序,因为它们以前已经完全解析过了execution@Basic执行顺序与发布的相同。执行过程中没有任何逆转。是的,是的,只是想向其他人表明,除了偏好之外,你没有将第二种方法置于第一种方法之上。我仍然记得那些可能会出现问题的语言(有时,我甚至不得不使用它们。啊!)@Basic是的,按照这个顺序定义part1和part2函数,然后让主函数调用part1,然后用part2设置超时可能会比较容易混淆。不过,出于调试目的,post还可以。