2012-07-20 45 views
1

尝试播放鼓轮直到生成随机名称,然后将其移除并播放欢呼声。

这两个文件都开始正确播放,但由于某种原因,鼓轮不会停止。

Array.prototype.remove = function(from, to) { 
    var rest = this.slice((to || from) + 1 || this.length); 
    this.length = from < 0 ? this.length + from : from; 
    return this.push.apply(this, rest); 
}; 

$(document).ready(function(){ 

    var staff = [ 'hardcoded', 'list', 'of', 'staff', 'members' ]; 

    $('button#start').click(function() { 

     $('embed').remove(); 
     $('body').append('<embed id="drum-roll" src="drum-roll.wav" autostart="true" hidden="true" loop="true">'); 

     var $display = $('#display'), 
      $results = $('#results table'); 
     $display.removeClass("winner"); 
     $display.addClass("spinner"); 

     var counter = 0,    
      rand = 0, 
      run_time = 10, 
      delay = (run_time * 100)/staff.length, 
      loop_number = 5, 
      max_count = staff.length * loop_number; 

     $display.doTimeout('loop', delay, function() { 
      counter++; 
      var newRand = Math.floor(Math.random() * staff.length); 
      if (rand === newRand) { 
       rand = Math.floor(Math.random() * staff.length); 
      } else { 
       rand = newRand; 
      } 

      $(this).text(staff[rand]); 

      if (counter < max_count) { return true; } 
      else { 
       $('#results tr:last').after('<tr><td class="number">' + staff.length + '</td><td>' + staff[rand] + '</td></tr>'); 
       staff.remove(rand); 
       $display.removeClass("spinner"); 
       $display.addClass("winner"); 

       $('embed').remove(); 
       $('body').append('<embed src="cheering.wav" autostart="true" hidden="true" loop="false">'); 
      } 
     }); 
    }); 

}); 

任何想法,为什么这可能是这种情况?我猜这是不是在DOM中的第一个embed或什么?

由于提前,

+0

莫比:$( '主体')附加('<嵌入ID = “击鼓声” SRC = “drum-roll.wav”autostart =“true”hidden =“true”loop =“true”>',function(){the REST of the CODE}); – Gijs 2012-07-20 08:40:08

+0

你试过'$('embed')。prop(“src”,null).remove();' – Esailija 2012-07-20 08:42:39

+0

刚刚尝试过@Esailija,同样的问题。必须与DOM相关,即当我试图删除它时,“embed”不存在?我不是专家(这可能很清楚..) – dunc 2012-07-20 08:45:43

回答

2

不要试图删除“嵌入”的标签,但如果你能对ID的引用上的标签本身。

代替:

$('embed').remove(); 

尝试:追加第一击鼓声后

$('#drum-roll').remove(); 
相关问题