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还可以。