你好ive使用javascript制作了一个mp3播放器,它在除了IE10之外的每个浏览器上都能正常工作
页面之前:http://www.mupiz.com/noon(尝试点击一首歌)
但IE10遵循链接并忽略了脚本......
这是我的剧本:
var list = $("#playlist").find("a:not(.songLink)");
listNC=new Array();
for (var i=0;i<list.length;i++) { // we get all the song
list[i].rel = i;
$(list[i]).parent().parent().prepend("<td class='notplayed' width='25px'><img src='../../images/lecteur-B-playlist-play.png' style='z-index:10000'/></td>");
listNC[i]=girlify(list[i].href);
list[i].onclick = function(event) { // onclick on each link
if($(this).attr('class')!="songLink"){
soundManager.stopAll();
current = this.rel;
event.preventDefault();
lire_current(); // this play the song
return false; // **this does not work!**
}
};
这是CSS的专用部分
答案 0 :(得分:0)
你有很多mix'n'match jQuery和常规的DOM代码,这有点令人困惑。我认为它只能在其他浏览器中运行,而不是你的运气。最后,我认为IE在调用preventDefault
时出错,因为它有一个不同的事件模型而你没有使用平衡的jQuery事件。这意味着preventDefault
无法正常工作,并且由于错误而永远无法访问return false
。
我会修改提取的代码,如下所示:
var listNC = [],
current;
$('#playlist')
.find('a:not(.songLink)')
.each(function (i) {
var $this = $(this);
$this
.attr('rel', i)
.parent()
.parent()
.prepend('<td class="notplayed" width="25px"><img src="../../images/lecteur-B-playlist-play.png" style="z-index:10000"/></td>');
listNC[i] = girlify($this.attr('href'));
})
.on('click', function (e) {
soundManager.stopAll();
current = $(this).attr('rel');
lire_current();
// Event control:
e.preventDefault(); //keeps link from being followed
//I don't think you want either of these next two lines:
e.stopPropagation(); //keeps event from bubbling...probably not what you want
return false; //causes same as calling e.preventDefault() e.stopPropagation()...probably not what you want
});
我当然无法测试它,但我认为它会做你想要的。