0

嗨,我使用 javascript 制作了一个 mp3 播放器,它可以在除 IE10 之外的所有浏览器上完美运行

Ex of page : 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 的专用部分

4

1 回答 1

0

你有很多混搭 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
    });

我当然无法测试它,但我认为它会做你想要的。

于 2013-01-10T01:20:00.780 回答