e.PreventDefault()在单击文本时不起作用

时间:2017-05-07 20:14:24

标签: javascript html css

所以,我正在尝试在我的网站上创建一个音乐播放列表。当我点击不同的文字时,我有音乐播放的地方。但是,我希望它能够让我无法进入播放该歌曲的页面。我尝试使用e.PrevetnDefault()来实现此功能,希望在单击文本时取消打开新页面的页面。但是,它不起作用。每当我点击文本时,都会打开一个页面。

看看我的代码:

   <script>
    audioPlayer();

    function audioPlayer() {
        var currentSong = 0;
        $("audioPlayer")[0].src = $("DJList li a")[0];
        $("audioPlayer")[0].play();
        $("DJList li a").click(function(e) {
            e.preventDefault();
            $("#audioPlayer")[0].src = this;
            $("audioPlayer")[0].play();
            $("#DJList li a").removeClass("current-song");
            currentSong = $(this).parent().index();
            $(this).parent.addClass("current-song");
        });

        $("audioPlayer")[0].addEventListener("ended", function() {
            currentSong++
            if (currentSong == $("DJList li a").length)
                currentSong = 0;
            $("DJList li").removeClass("current-song");
            $("DJList li:eq(" + currentSong + ")").addClass("current-song");
            $("audioPlayer")[0].src = $("DJList li a")[currentSong].href;
            $("audioPlayer")[0].play();
        });
</script>

1 个答案:

答案 0 :(得分:0)

$("DJList li a").click(function(e) {不会选择您的链接,因为DJList不是任何会被选中的元素名称。 因此你的preventDefault甚至没有被调用。
将其更改为$("#DJList li a")可能会对初学者有所帮助。你在多个地方犯了同样的错误。